Javascript匿名函数调用
这个问题在这里已经有了答案:
当在语句位置(作为语句中的第一个标记)满足关键字function
,函数声明被表示为函数语句。 函数语句被提升到范围的顶部,不能立即调用并且必须有一个名称。
当关键字在表达式中被满足时(即不是在语句中的第一个标记,在你的示例中!
是第一个标记),函数声明被表达为一个函数表达式,它可以是匿名的并返回新创建的功能。 由于它返回新创建函数的值,因此可以通过在其后面添加括号来立即调用它。
将括号内的声明包装起来也是一样的,但比用前缀加前缀更为常见!
或+
:
(function () {
...
}());
第二种形式function () {}
是一个语句。 !
运算符将其转换为表达式。 您还会发现人们在function
关键字前使用-
或+
的情况。
当你有一个函数表达式求值时,你可以使用()
运算符来调用该函数。
另一个(也许更容易理解)的方式来实现相同的效果是另一个括号:
( function(x) { body; } )(arg);
通过将函数放在括号内,再次将其转换为表达式,该表达式将计算为函数。 这个函数以arg
作为参数被调用。
就感叹号而言,这不是魔术。 它将结果转换为真/假。
你的问题可能是你的匿名函数里面有一个错误。
链接地址: http://www.djcxy.com/p/17417.html