巴扎黑2017-04-10 15:18:06
你有很多种方法让他弹出a,比如:
~function a(){
alert("a");
}();
-function a(){
alert("a");
}();
+function a(){
alert("a");
}();
!function a(){
alert("a");
}();
当然,最正统的是这样:
(function a(){
alert("a");
})();
原理是: 通过前面的符号,让这个语句强制解析成表达式,再加上你最后的一对小括号,让表达式执行,美其名曰 立即执行的函数表达式(IIFE)。
再扯点。。
你的函数
function a(){
alert('a');
}
可以用函数字面量来写,即
var a = function(){
alert('a');
}
这样的话,你通过这样就可以执行函数a了
a(); // alert ==> a
所以
在你的函数外没套上小括号的时候,像这样
function a(){
alert('a');
} // 语句
(function a(){
alert('a');
}) // 表达式
而后面跟的小括号() 是让你的表达式执行而已
(function a(){
alert('a');
})()
就像这样
a()
高洛峰2017-04-10 15:18:06
(function a(){
alert("a");
})();
楼上说得对,表达式语句不能以 function
开头。
参考 http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262....