LittleBill

匿名立即调用函数学习

错误例子:
因为在解析器解析全局的function或者function内部function关键字的时候,默认是认为function声明,而不是function表达式,如果你不显示告诉编译器,它默认会声明成一个缺少名字的function,并且抛出一个语法错误信息,因为function声明需要一个名字。

function() {// FF报错信息:SyntaxError: function statement requires a name
    alert("第18行");
}();


正确例子:
我们只需要用大括弧将代码的代码全部括住就行,因为JavaScript里括弧()里面不能包含语句,所以在这一点上,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明。

(function () {// 推荐使用这个
    alert("第25行");
} ());

(function () {// 但是这个也是可以用的
    alert("第29行");
}) ();

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注