我无法理解为什么 name 在这里得到一个值
(function() {
(function() {
var name = 'Fido';
})();
})();
console.log(name + ' says woof'); //Output: Fido says woof
变量名不应该是内部函数的局部变量吗?
最佳答案
该变量是局部变量,您看到的值并非来自函数内部的赋值。
您还将窗口命名为“Fido”,当您在全局范围内使用 name
时,您将获得 window.name
属性。
如果你在 jsfiddle 中尝试,你会得到“结果说 woof”。
关于JavaScript 变量提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20230621/