Почему я всегда получаю последнее значение, присвоенное переменной
хотя я уже вложил это в функцию?
Когда вызывается событие «вверх» и вызывается getGoogleFiles, вызывается последнее значение, присвоенное resourceId. Я не понимаю.
for ( var i in arrayObj) {
var resourceId = arrayObj[i].ResourceId;
entity_list.onmouseup = function(event) {
parent.changeButtonState(this, event);
(function(resourceId) {
getGoogleFiles(resourceId);
})(resourceId);
}
}
Примечание: это отличается от других вопросов JavaScript, потому что onmouseup не запускается
Я следил за созданием другой функции, упомянутой здесь:
Закрытие JavaScript внутри циклов - простой практический пример
for ( var i in arrayObj) {
entity_list.onmouseup = function(event) {
parent.changeButtonState(this, event);
testing(arrayObj[i].ResourceId);
}
}
function testing(index){
return function() { getGoogleFiles(index); };
}
Но когда срабатывает элемент «entity_list», ничего не происходит.
Я не могу использовать let
, потому что конкретный браузер, который я использую, возвращает SyntaxError
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
Спасибо!