为什么在全局范围内调用`var`定义的匿名函数?
function setupSomeGlobals() { // Local variable that ends up within closure var num = 666; // Store some references to functions as global variables var gAlertNumber = function() { console.log(num); } } setupSomeGlobals(); gAlertNumber(); //works, WHY?!! console.log(num); //does not work, GOOD
我希望gAlertNumber()不能在setupSomeGlobals()函数之外工作......
var
声明的变量总是本地的,不能从外部访问。
如果您在控制台中运行此操作,则更可能是您在早期尝试中已经污染了全局命名空间。 打开一个新选项卡并再次运行代码。
链接地址: http://www.djcxy.com/p/51693.html上一篇: Why can anonymous functions defined with `var` be called in global scope?