我想在对象构造过程中获取对象中的嵌套属性名称。
我做错了什么?如何获得预期输出:'c'
是否从嵌套对象中删除?
const obj = {
log: ['a', 'b', 'c'],
get latest() {
return this.log[this.log.length - 1];
}
};
console.log(obj.latest);
// Expected output: "c"
// Actual output: "c"
确认。上面的启动示例有效。
现在,我想添加嵌套(obj.level1
),这是事情崩溃的地方。
修改尝试1:不工作
const obj = {
level1: {
log: ['a', 'b', 'c'],
get latest() {
return this.log[this.log.length - 1];
}
}
};
console.log(obj.latest);
// Expected output: "c"
// Actual output: undefined
修改尝试2:不工作
const obj = {
level1: {
log: ['a', 'b', 'c'],
get latest() {
return this.log[this.level1.log.length - 1];
}
}
};
console.log(obj.latest);
// Expected output: "c"
// Actual output: undefined
2条答案
按热度按时间qhhrdooz1#
你的
latest
函数存在于level1
深度上,所以下面的代码是有效的:但是,如果这不是您的意图,您应该这样编写对象。
7kjnsjlb2#
在你的修改中,
obj
没有latest
getter,它在子对象level1
中,所以试着记录obj.level1.latest
。