Ну, это довольно простой, но я не мог найти ответы в одиночку. Поэтому я надеюсь, что вы, ребята, можете мне помочь.Передача значения переменной javascript в прямом эфире
Я пытался связать событие с массивом объекта, но каким-то образом прошедшая переменная является последней. После того, как он был повторен.
for (var i = 0; i < map_object.length; i++) {
map_object[i].on('mousedown', function(){
var x = i;
setEvent(this, x);
});
};
function setEvent(data, i){
console.log(data);
var x = i;
console.log(x);
}
данные переданы по значению, поэтому они всегда возвращаются динамически, между тем (i переменная) передается как ссылка.
Так что, когда он исполнял я всегда получаю этот результат
данные = (некоторые объекты) {ожидаемый результат}
я = 9 {} = непредвиденная map_object.length
I не может понять, связано ли это с тем, что (i) передано как ссылка, или потому, что текущее событие выполняется после завершения итерации.
ВКЛЮЧЕНО функции происходят из Fabricjs
Возможный дубликат http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example – SimpleJ
Весь ответ правильный, не стесняйтесь изучать каждый из них. –