gpt4 book ai didi

Javascript:无法打印由 Object.defineProperty 定义的对象属性

转载 作者:行者123 更新时间:2023-12-03 00:24:18 26 4
gpt4 key购买 nike

我使用Object.defineProperty方法来定义对象的属性:

const o = { a: 1 }
Object.defineProperty(o, 'b', {
get() {
return this.a
}, set(value) {
this.a = value
}
})

但是,当我使用 console.log 尝试打印对象 o 时,b 属性似乎不在其中。

但是当我尝试使用o.b访问它时,它可以返回正确的值

所以我很困惑:为什么属性不能打印但可以访问?

最佳答案

使用 .defineProperty() 添加的属性默认情况下不可枚举

通过设置enumerable: true使它们“可见”

var foo = {}
Object.defineProperty(foo, "a", {
get() { return "a"; }
});

Object.defineProperty(foo, "b", {
get() { return "b"; },
enumerable: true
});

console.log(Object.keys(foo));

关于Javascript:无法打印由 Object.defineProperty 定义的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54162053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com