共计 485 个字符,预计需要花费 2 分钟才能阅读完成。
const a = 1
(function A() {console.log(A); // [Function A]
A = 1;
console.log(window.A); // undefined
console.log(A); // [Function A]
console.log(window.a); // 1
console.log(a); // 1
}())
如上所示,立刻执行具名函数式时不会在 window 上增加属性,且具名函数内不可对作为函数名的标识符来做批改,所以 A = 1 有效。
而失常执行的具名函数外部为何能够批改作为函数名的标识符呢,我的猜测是,定义一个函数是,将它写在了 windows 上作为一个属性。所以咱们批改的是 window 上的属性函数 A, 而不是函数 A 的标识。
function A(){console.log(A) // [Function A]
console.log(window.A) // [Function A]
A = 1
console.log(A) // 1
console.log(window.A) // 1
}
A()
因没有文档就立刻执行具名函数与具名函数做过具体解说,所以以上全是集体猜测,欢送各位大佬批评指正
正文完