1. 程式人生 > >JS(JavaScript)的進一步瞭解1(更新中···)

JS(JavaScript)的進一步瞭解1(更新中···)

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指向當前元素

  

  重點是函式套函式的時候。

    不要管它怎麼定義,看它執行時候的主體。

  案例