javascript defineProperty 使属性不可枚举
Posted
技术标签:
【中文标题】javascript defineProperty 使属性不可枚举【英文标题】:javascript defineProperty to make an attribute non enumerable 【发布时间】:2012-05-03 10:07:13 【问题描述】:我正在尝试使用 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);
【问题讨论】:
【参考方案1】: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 使属性不可枚举的主要内容,如果未能解决你的问题,请参考以下文章
Javascript Object.defineProperty的使用
javascript defineProperty 使属性不可枚举
JavaScript使用Object.defineProperty方法实现双数据绑定
关于javascript中defineProperty的学习