JavaScript anony函数样式



在Javascript中使用匿名函数时,这1,2个情况是相同的吗?

通常,很容易看到案例 1。

案例 1 :

$('img:eq(0)').attr('src', ( function(){return '1'} ) ()); //works
console.log((function(){return '1'})()); //works

案例 2 :

$('img:eq(0)').attr('src', function(){return '2'}() ); //works
console.log(function(){return '2'}()); //works

情况3:(似乎jQuery解析了它的函数)

$('img:eq(0)').attr('src', function(){return '3'}); //works
console.log(function(){return '3'}); //function

[在铬中]

谢谢菲利克斯·克林,但是

在控制台中,

(function(){alert('1');})() //works
function(){alert('2');}()// SyntaxError: Unexpected token (

谢谢AngularHarsh,

如您所见,有一个问题。当解析器在全局范围或函数内遇到函数关键字时,默认情况下会将其视为函数声明(语句),而不是函数表达式。如果您没有显式告诉解析器需要表达式,它会看到它认为是没有名称的函数声明,并引发 SyntaxError 异常,因为函数声明需要名称。

在您附加的链接中。

不知道你在这里问什么。但是,如果看到括号内的前两个函数,它们是 IIFE 的示例。第三不是。有关更多信息,请阅读以下内容:http://benalman.com/news/2010/11/immediately-invoked-function-expression/

相关内容

  • 没有找到相关文章

最新更新