js当即执行函数

对于非匿名的当即执行函数须要注意如下一点函数

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

由于当 JS 解释器在遇到非匿名的当即执行函数时,会建立一个辅助的特定对象,而后将函数名称做为这个对象的属性,所以函数内部才能够访问到 foo,可是这又个值是只读的,因此对它的赋值并不生效,因此打印的结果仍是这个函数,而且外部的值也没有发生更改。code

相关文章
相关标签/搜索