繁体   English   中英

javascript defineProperty使属性不可枚举

[英]javascript defineProperty to make an attribute non enumerable

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

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的属性( 检查出来 )。 它是一个(构造函数)函数,它将创建一个具有名为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演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM