gpt4 book ai didi

javascript defineProperty 使属性不可枚举

转载 作者:数据小太阳 更新时间:2023-10-29 04:03:14 26 4
gpt4 key购买 nike

我正在尝试使用 defineProperty 使属性不出现在 for...in 循环中,但它不起作用。这个代码正确吗?

function Item() {
this.enumerable = "enum";
this.nonEnum = "noEnum";
}
Object.defineProperty(Item, "nonEnum", { enumerable: false });

var test = new Item();

for (var tmp in test){
console.log(tmp);
}

最佳答案

Item 没有名为 nonEnum ( check it out ) 的属性。它是一个(构造函数)函数,将创建一个对象,该对象具有名为 nonEnum 的属性。

所以这个可以工作:

var test = new Item();
Object.defineProperty(test, "nonEnum", { enumerable: false });

你也可以这样写这个函数:

function Item() {
this.enumerable = "enum";
Object.defineProperty(this, "nonEnum", {
enumerable: false,
value: 'noEnum'
});
}

jsFiddle Demo

关于javascript defineProperty 使属性不可枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10269652/

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