我見過一堆示例,但似乎無法獲得一些示例代碼。關閉裏面的「this」關鍵字
看看下面的代碼:
var test = (function(){
var t = "test";
return {
alertT: function(){
alert(t);
}
}
}());
,我有一個功能上window.load像:
test.alertT();
這一切工作正常。但是,當我試圖明確地設置t的內部警報()在alertT,我只是不明確。
我已經試過:
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!
}
}
}());
我缺少什麼?我需要能夠明確地設置上下文等回調等我見過的例子(http://stackoverflow.com/questions/346015/javascript-closures-and-this-context),看起來像我在做什麼,那爲什麼這不起作用?
爲什麼你想明確地設置上下文?你的例子並沒有真正表明這一點。要麼你必須傳遞一個上下文到alertT函數中,否則你將不得不使用綁定方法將函數綁定到你的選擇的上下文。 – Jakob 2010-10-07 16:32:23
這個例子被忽略了,所以它很容易閱讀。我希望能夠顯式地訪問封閉的over變量,以便將其傳遞給另一個傳入的函數。 – hackerhasid 2010-10-07 16:35:25