【发布时间】:2015-04-27 21:04:02
【问题描述】:
我很好奇,为什么不只是javascript函数作用域呢?为什么只是加了括号就不能访问呢?我的猜测是括号和javascript相关的操作,但是不知道到底为什么这个child原理和设计?
(function test(){
console.log( test );
})();
test();//Uncaught ReferenceError: test is not defined IE8- is ok
或
(function test(){
console.log( test );
});
test();//Uncaught ReferenceError: test is not defined IE8- is ok
【问题讨论】:
-
这就是立即调用函数表达式的工作方式,它只能在它自己的范围内使用。
-
IE8 在 console.log 上会失败,因为 IE8 不支持。
-
重复列表中的第一个链接具有误导性。这与闭包无关。有关函数表达式,请参见第二个链接。