Нет абсолютно ничего неправильно с кодом, который Вы записали. И some_function
и someVar
должно быть доступным, в случае, если они были доступны в контексте, где анонимный
function() { some_function(someVar); }
был создан.
Проверка, если предупреждение дает Вам значение, которое Вы искали, быть уверенными, что это будет доступно в пределах анонимной функции (если у Вас не будет большего количества кода, который воздействует на тот же someVar
переменная рядом с вызовом к addEventListener
)
var someVar;
someVar = some_other_function();
alert(someVar);
someObj.addEventListener("click", function(){
some_function(someVar);
}, false);
someVar
значение должно быть доступным только в some_function()
контекст, не от слушателя. Если Вам нравится иметь его в слушателе, необходимо сделать что-то как:
someObj.addEventListener("click",
function(){
var newVar = someVar;
some_function(someVar);
},
false);
и использование newVar
вместо этого.
другой путь состоит в том, чтобы возвратиться someVar
значение от some_function()
для использования его далее в слушателе (как новый локальный var):
var someVar = some_function(someVar);
просто хотел бы добавить. если кто-либо добавляет функцию, которая обновляет флажки слушателю события, необходимо было бы использовать event.target
вместо this
для обновления флажков.