JS(JavaScript)的進一步瞭解1(更新中···)
阿新 • • 發佈:2018-11-12
1.作用域鏈
作用域:瀏覽器給JS的一個生存環境(棧記憶體)。
作用域鏈:JS中的關鍵字var 和function 都可以提前宣告和定義。提前宣告和定義的內容放在我們的
記憶體地址(堆記憶體)中。然後JS從上到下逐行執行,遇到變數就去記憶體地址查詢是否存在這個變數。有
就使用,沒有就繼續向父級作用域查詢直到window下結束,這種查詢機制叫作用域鏈。
JS程式碼中存在著大量的變數和函式,我們在使用它們的時候一定要知道它們到底歸屬誰。
2.this
1)this是JS的一個關鍵字,指定一個物件然後去替代它。
函式內的this和函式外的this,函式內的this指向行為發生的主體。函式外的this都指向window,沒有意義。
為什麼還是window?
因為瀏覽器執行JS程式碼的時候在執行chifan()這個函式的時候查詢到變數chifan的歸屬是window。在
window下的變數可以寫成window.chifan函式可以寫成window.chifan()。
2)函式內的this和函式在什麼環境下定義沒有關係,而只和自己的主體有關。
3)主體怎麼找?
就看這個函式(方法)帶不帶“.”(點),如果函式和方法執行帶“.”(點),那麼this就指向“.”(點)前面的
物件,如果不帶“.”就指向window。
4)自執行函式裡面的this都指向window。
this和變數的關係 先找到this的主體是誰,然後把它換成那個主體就行了,this只是代表這個主體
5)給元素中的某一個事件繫結方法,當事件觸發時,執行繫結的方法,方法中的this指向當前元素
重點是函式套函式的時候。
不要管它怎麼定義,看它執行時候的主體。
案例