我有一個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的答案更符合我所尋找的內容。但我仍然給你一個「上」。 –