Javascript 以iLife为方法实时构造对象
当我想打印属性时,我不能访问变量 我有一个目标:Javascript 以iLife为方法实时构造对象,javascript,object,iife,Javascript,Object,Iife,当我想打印属性时,我不能访问变量 我有一个目标: let human = { birdYear: 1, getAge: (function (birdYear) { return 2021 - this.birdYear })() }; 当打印人员收到此信息时: Cannot read property 'birdYear' of birdYear { birdYear: 1 getAge: 2020 } 我想得到这个: Cannot read property
let human = {
birdYear: 1,
getAge: (function (birdYear) {
return 2021 - this.birdYear
})()
};
当打印人员收到此信息时:
Cannot read property 'birdYear' of birdYear
{
birdYear: 1
getAge: 2020
}
我想得到这个:
Cannot read property 'birdYear' of birdYear
{
birdYear: 1
getAge: 2020
}
有人帮我吗?我使用:
- “这个。”
- 没有“这个,伯代尔”
- (fn(birdYear){…birdYear})()
- (fn(birdYear){…birdYear})(this.birdYear)
let human = {
birdYear: 1,
get getAge() {
return new Date().getFullYear() - this.birdYear
}
};
工作!
我只需要理解为什么我不使用IIFE作为方法…您不想创建一个可以使用内置访问器(即
get
)方法实例化和序列化的类吗
类动物{
建造师(年龄){
这个。年龄=年龄;
}
获得生日(){
返回新日期().getUTCFullYear()-this.age;
}
序列化(){
返回{age:this.age,birthYear:this.birthYear};
}
}
让鸟=新动物(1);
log(bird.serialize())代码>此
指的是您的函数,而不是它所属的对象,因为该对象是对象文字,而不是类实例。