всем привет!
Вообщем столкнулся с одной проблемой, которую в принципе могу обойти обходным путем, но мне интересна причина такого поведения.
Вообщем, есть код:
var i = 0,
length = 10,
relation = {
startPoint: {
x:0,
y:0
},
endPoint: {
x:0,
y:0
}
},
relations = [];
for(; i< length; i++) {
relation.startPoint.x = i;
relation.startPoint.y = i;
relation.endPoint.x = i;
relation.endPoint.y = i;
relations.push(relation);
}
console.log(relations);
Суть кода заключается в динамическом изменении свойств объекта, после чего текущий объект заносится в массив. Ожидается, что на выходе получается массив из объектов, в котором для свойств будут заданы значения от нуля до 9 для каждого последующего объекта соответственно.
Но, в реальности получается так, что на выходе получается массив, в котором у каждого объекта значение свойств = 9.
Почему так происходит - я не понимаю, вроде бы переопределение свойств должно происходить в рантайме.
Вопрос - подскажите пожалуйста, по какой причине значения свойств не присваиваются динамически?
заранее благодарю