J'ai un objet JavaScript qui a des propriétés qui ont été créées en utilisant la fonction Object.defineProperty
. Je voudrais parcourir toutes ses propriétés en utilisant la méthode "for in", mais ces propriétés sont ignorées. Y a-t-il un autre moyen de le faire?Comment accéder aux propriétés d'un objet JavaScript en utilisant une boucle "for in" lorsqu'elles sont définies avec `Object.defineProperty`
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]);
}
La première alerte nous montre que « prop3 » est un bien réel qui a été défini avec Object.defineProperty
, mais lorsque nous parcourons les propriétés en utilisant un « pour en » boucle « prop3 » est ignoré.
Grande réponse, mais @komnions réponse était plus le long des lignes de ce que je cherchais. Mais je t'ai quand même donné un "up". –