自运行调用函数后加分号

运行以下这代码, 不会象我们预期的那样弹出a 和 b

(function(){
    alert('a');
})()

(function(){
    alert('b');
})()

 错误信息是:

 

分析问题是分析器把代码解析成这样

(function(){
    alert('a');
})()(function(){
    alert('b');
})()

 很简单的方法就是加一个分号

(function(){
    alert('a');
})();

(function(){
    alert('b');
})();

 就可以了。

 

在自运行函数后面如果出现一对括号的话,就会出现这样的问题, 会被认为是在调用一个函数(方法),所以还是要保持好的代码风格,在完成语句后加上分号,虽然javascript允许没有结束符(;)。

posted @ 2012-02-08 11:03  z s k  阅读(1498)  评论(0编辑  收藏  举报