Dans mon code, j'ai un objet,Object.defineProperty en boucle
var obj = {
item1: {
coords: {
A: new Point(905.76, 1626.67),
//...
},
inf: {
//...
}
},
item2: {
coords: {
A: new Point(1259.25, 1634.50),
//...
},
inf: {
//...
}
},
}
Et je voudrais définir certaines propriétés comme ça:
Object.defineProperty(obj.item1.inf, "corner", {
get() {
var x = obj.item1.coords.A.x;
var y = obj.item1.coords.A.y;
return new Point(x, y);
}
})
Object.defineProperty(obj.item2.inf, "corner", {
get() {
var x = obj.item2.coords.A.x;
var y = obj.item2.coords.A.y;
return new Point(x, y);
}
})
Il fonctionne très bien pour moi, mais il est seulement un morceau de code. Je pensais, que ce sera plus agréable de faire mon code plus court et j'ai décidé de lieu de simplement copier et rebaptisèrent utilise une boucle comme ça:
for (item in obj) {
Object.defineProperty(obj[item].inf, "corner", {
get() {
var x = obj[item].coords.A.x;
var y = obj[item].coords.A.y;
return new Point(x, y);
}
})
}
Mais juste une question. Je reçois les mêmes valeurs pour tous les éléments inf du dernier. Est-il possible de résoudre ce problème?
Pas certain de recueillir problème correctement. Pouvez-vous créer un Stacksnippets à démontrer? – guest271314