js當即執行函數

對於非匿名的當即執行函數須要注意如下一點函數

let foo = 1
(function foo() {
    foo = 10
    console.log(foo)
}()) //-> ƒ foo() { foo = 10 ; console.log(foo) }

由於當 JS 解釋器在遇到非匿名的當即執行函數時,會建立一個輔助的特定對象,而後將函數名稱做爲這個對象的屬性,所以函數內部才能夠訪問到 foo,可是這又個值是隻讀的,因此對它的賦值並不生效,因此打印的結果仍是這個函數,而且外部的值也沒有發生更改。code

相關文章
相關標籤/搜索