1
在我的代码我有一个对象,Object.defineProperty在for循环
var obj = {
item1: {
coords: {
A: new Point(905.76, 1626.67),
//...
},
inf: {
//...
}
},
item2: {
coords: {
A: new Point(1259.25, 1634.50),
//...
},
inf: {
//...
}
},
}
而且我想定义这样的一些属性:
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);
}
})
它正常工作对我来说,但它的只有一段代码。我想,这将是更好的,使我的代码更短,我决定来而不仅仅是复制和重命名它使用一个for循环这样的:
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);
}
})
}
,但它只是一个问题。我得到了最后一个inf的所有项目的相同值。有没有可能解决这个问题?
并非一定正确地收集问题。你可以创建一个stacksnippets来演示吗? – guest271314