javascript defineProperty使属性不可枚举
我试图使用defineProperty使属性不出现在for…in循环中,但它不起作用。这个代码正确吗javascript defineProperty使属性不可枚举,javascript,object,constructor,ecmascript-5,defineproperty,Javascript,Object,Constructor,Ecmascript 5,Defineproperty,我试图使用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){ conso
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);
}
项
没有名为nonEnum
()的属性。它是一个(构造函数)函数,将创建一个具有名为nonEnum
的属性的对象
所以这一个会起作用:
var test = new Item();
Object.defineProperty(test, "nonEnum", { enumerable: false });
您也可以这样编写此函数:
function Item() {
this.enumerable = "enum";
Object.defineProperty(this, "nonEnum", {
enumerable: false,
value: 'noEnum'
});
}