Я видел кучу примеров, но не могу заставить какой-то пример кода работать.
Возьмите следующий код:
var test = (function(){
var t = "test";
return {
alertT: function(){
alert(t);
}
}
}());
и у меня есть функция для window.load вроде:
test.alertT();
Это все отлично работает. Однако, когда я пытаюсь явно установить контекст t внутри alert () в alertT , я просто получаю undefined.
Я пробовал:
var that = this;
alert(that.t); //undefined
Я пробовал:
return {
that: this,
alertT: function(){
alert(that.t); // undefined!
}
}
и я попробовал:
var test = (function(){
var t = "test";
var myObj = this;
return {
alertT: function(){
alert(myObj.t); // undefined!
}
}
}());
что мне не хватает? Мне нужно иметь возможность явно задавать контекст для таких вещей, как обратные вызовы и т. Д. Я тоже видел примеры (/280601/javascript-closures-i-eto), что похоже на то, что я делаю, так почему же это не работает?