以IIFE为方法实时构造对象



当我想打印属性的年份时,我不能访问变量我有这个目标:

let human = {
birdYear: 1,
getAge: (function (birdYear) {
return 2021 - this.birdYear
})()
};

当打印人得到这个:

Cannot read property 'birdYear' of birdYear

我想要这个:

{
birdYear: 1
getAge: 2020
}

有拐杖帮我吗?我的使用:

  • "是的。">
  • 没有"这个.鸟年">
  • (fn(birdYear({…birdYear}(((
  • (fn(birdYear({…birdYear}((今年(

且无

谢谢

//添加

我找到了这条路

let human = {
birdYear: 1,
get getAge() {
return new Date().getFullYear() - this.birdYear
}
};

工作!我只需要理解为什么我不使用IIFE作为方法。。。

难道不想创建一个可以使用内置访问器(即get(方法实例化和序列化的类吗?

class Animal {
constructor(age) {
this.age = age;
}
get birthYear() {
return new Date().getUTCFullYear() - this.age;
}
serialize() {
return { age: this.age, birthYear: this.birthYear };
}
}
let bird = new Animal(1);
console.log(bird.serialize());

相关内容

最新更新