(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
答案 0 :(得分:2)
当您将函数包装在括号中时,它会将它放在新范围内。
它也像返回值,这就是它可以被称为IIFE或立即调用函数表达式的原因。
重写它的另一种方法,更有意义的是这样:
var myFunc = (function test(){
alert('Hello!');
});
myFunc(); // Works!
test(); // Doesn't work!
答案 1 :(得分:-1)
要了解有关详情,请阅读IIFE - Immediately-invoked function expression。
短版本 - 函数在其自己的作用域中运行,除非您将参数传递给它,如下所示:
(function test(x) {
alert(x); //alerts "yey!";
})("yey!");