运行以下这代码, 不会象我们预期的那样弹出a 和 b
(function(){
alert('a');
})()
(function(){
alert('b');
})()
错误信息是:
分析问题是分析器把代码解析成这样
(function(){
alert('a');
})()(function(){
alert('b');
})()
很简单的方法就是加一个分号
(function(){
alert('a');
})();
(function(){
alert('b');
})();
就可以了。
在自运行函数后面如果出现一对括号的话,就会出现这样的问题, 会被认为是在调用一个函数(方法),所以还是要保持好的代码风格,在完成语句后加上分号,虽然javascript允许没有结束符(;)。