我有一个JavaScript对象,它具有使用Object.defineProperty
函数创建的一些属性。我想使用“for in”方法来遍历它的所有属性,但是这些属性被忽略。有另一种方法可以做到这一点吗?如何通过Object.defineProperty定义的“for in”循环访问JavaScript对象的属性
var myObject = {
prop1: "This is property 1",
prop2: "This is property 2"
};
(function(){
var prop3 = "This is a read only property";
Object.defineProperty(myObject, "prop3", {
get: function(){
return prop3;
},
set: function(){
console.warn('"myObject.prop3" is read only.');
}
});
})();
alert("Property 3 = " + myObject.prop3);
for(var k in myObject){
alert(myObject[k]);
}
第一个提醒我们展示了“prop3”是与Object.defineProperty
定义的不动产,但是当我们通过使用“为”循环“prop3”属性迭代被忽略。
很好的答案,但@ komnions的答案更符合我所寻找的内容。但我仍然给你一个“上”。 –