javascript閉包中的this指向問題

2021-09-23 10:23:10 字數 862 閱讀 3626

關於this物件,它是基於當前執行環境所繫結的

var name="the window";

var object=

}} console.log(object.getname()()); //the window

每個函式在被呼叫時都會自動取得兩個特殊變數——this和arguments。內部函式在搜尋這兩個變數時,只會搜尋到其活動物件位置,因此永遠不能直接訪問外部函式中的這兩個變數,但是可以吧外部作用域中的this物件先儲存在乙個閉包可以訪問的變數中,就可以通過閉包訪問之前儲存的this作用域。

var name="the window";

var object=

}}console.log(object.getname()());//the object

其實我搞不懂為什麼js紅寶書要這樣設計?以下**不就可以訪問了嗎

var name="the window";

var object=

}console.log(object.getname());//the object

當函式作為物件裡的方法被呼叫時,函式內的this是呼叫該函式的物件。比如當object.getname()被呼叫時,函式內的 this 將繫結到object物件。

所以再巢狀一層匿名函式就是將this的指向指回window,以此演示可以在此之前將this轉存的作用。

javaScript中的閉包

首先,我覺得,乙個概念,如果不理解也不影響使用的話,那麼,就沒必要去理解它 去學習它。閉包就是這樣乙個概念,你不理解它也能很好的用它。俺這兩年寫as3程式,是天天在和它打交道,甚至有過乙個function套乙個,乙個方法中套了20多個function的極端例子,但從未深究過它是怎麼實現的,它就像水和...

javascript中的閉包

1.閉包的解釋 關於閉包具體的定義文獻中給的概念很抽象,我認為閉包是一種使函式能夠都去其它函式的區域性變數的語法機制。舉個例子 functionoutfunc returninfunc infunc 控制台顯示 vicfeel 這這個例子我們可以看出,在函式infunc中依然可以訪問outfunc的...

javascript中的閉包

閉包 乙個函式能夠讀取另外乙個函式裡面的變數。閉包的作用 1 讀取函式內部的變數 2 讓這個變數的值始終保持在記憶體中,不會在父函式呼叫後被自動清除。使用閉包注意事項 由於閉包會使得函式中的變數都被儲存在記憶體中,記憶體消耗很大,所以不能濫用閉包,否則會造成網頁的效能問題,在ie中可能導致記憶體洩漏...