匿名函數:function後面沒有標識符。匿名函數中this指向window
閉包:有權訪問另一個作用域中的變量的函數。有兩種情況:函數作爲返回值(在一個函數內部創建另一個函數),函數作爲參數傳遞
每個函數function都有一個prototype,即原型。這裏再加一句話——每個對象都有一個proto,可成爲隱式原型。
訪問一個對象的屬性時,先在基本屬性中查找,如果沒有,再沿着proto這條鏈向上找,這就是原型鏈。
在函數體的語句執行之前,arguments變量和函數的參數都已經被賦值。從這裏可以看出,函數每被調用一次,都會產生一個新的執行上下文環境。
在函數中this到底取何值
一。如果函數作爲構造函數用,那麼其中的this就代表它即將new出來的對象。如果直接調用函數,就是window
二。函數作爲對象的一個屬性。如果函數作爲對象的一個屬性時,並且作爲對象的一個屬性被調用時,函數中的this指向該對象。
如果fn函數被賦值到了另一個變量中,並沒有作爲obj的一個屬性被調用,那麼this的值就是window(此時已經屬於匿名函數了)
三。函數用call或者apply調用。this的值就取傳入的對象的值
四。全局和調用匿名函數。this指向window