原型和閉包(整理)

匿名函數:function後面沒有標識符。匿名函數中this指向window
閉包:有權訪問另一個作用域中的變量的函數。有兩種情況:函數作爲返回值(在一個函數內部創建另一個函數),函數作爲參數傳遞

每個函數function都有一個prototype,即原型。這裏再加一句話——每個對象都有一個proto,可成爲隱式原型。

訪問一個對象的屬性時,先在基本屬性中查找,如果沒有,再沿着proto這條鏈向上找,這就是原型鏈。

在函數體的語句執行之前,arguments變量和函數的參數都已經被賦值。從這裏可以看出,函數每被調用一次,都會產生一個新的執行上下文環境。

在函數中this到底取何值
一。如果函數作爲構造函數用,那麼其中的this就代表它即將new出來的對象。如果直接調用函數,就是window
二。函數作爲對象的一個屬性。如果函數作爲對象的一個屬性時,並且作爲對象的一個屬性被調用時,函數中的this指向該對象。
如果fn函數被賦值到了另一個變量中,並沒有作爲obj的一個屬性被調用,那麼this的值就是window(此時已經屬於匿名函數了)
三。函數用call或者apply調用。this的值就取傳入的對象的值
四。全局和調用匿名函數。this指向window

參考:http://www.cnblogs.com/wangfupeng1988/p/4001284.html

發佈了223 篇原創文章 · 獲贊 23 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章