2012-06-20 46 views
0

這個Javascript代碼使用一個嵌套函數內的「本」的關鍵字(其嵌套在構造函數中):的Javascript「這個」的關鍵字的內部的嵌套函數

o=new MyCtor(); 
for (var p in o) { 
    print(p); 
    print(o[p]); 
} 
function MyCtor() { 
    this.a=1; 
    var instance=this; 
    nested(); 
    function nested() { 
    this.b=2; 
    instance.c=3; 
    } 
} 

結果是這樣的:

a 
1 
c 
3 

請注意,print()只是將輸出轉儲到屏幕上,如瀏覽器中的alert()(我正在使用獨立的Spidermonkey進行測試,而不是在瀏覽器內部)。注意屬性'b'不能由'this.b'創建。

只是想知道在構造函數內的嵌套函數中引用了什麼?

+0

http://www.quirksmode.org/js/this.html –

回答

2

因爲你是直接調用該函數(而不是作爲一個對象的屬性),並沒有new關鍵字,this是默認的對象(window在Web瀏覽器,global在節點等)。

查看live demo on jsfiddle