首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(函数(){})与函数(){}();

(函数(){})与函数(){}();
EN

Stack Overflow用户
提问于 2016-11-08 13:40:43
回答 1查看 80关注 0票数 2

考虑以下两个例子:

第一:

代码语言:javascript
复制
var x = (function(){  return 786;  }());

第二:

代码语言:javascript
复制
var y = function(){  return 786;  }();

我知道我们不能直接使用function(){ return 786; }();作为一个无菌自调用函数,但是现在由于我将它辅助到变量x,所以我可以使用这个函数。所以,

  • 在第一和第二种方法中,变量x的行为有什么不同吗?
EN

回答 1

Stack Overflow用户

发布于 2016-11-08 14:16:39

不是的。不会有什么区别的。

将函数封装在括号中将它们从function declaration转换为expression,有效的expression可以单独运行。

代码语言:javascript
复制
var x = (function(){  return 786;  }());

在这里,括在括号中的匿名函数是一个表达式,它执行函数并返回786,并将其分配给var x。因为匿名函数是一个有效的表达式,所以它也可以单独运行。

代码语言:javascript
复制
var y = function(){  return 786;  }();

在这里,完整的语句是赋值expression,因此它被执行并将值786存储到var y

欲进一步阅读,请参阅以下链接:

/questions/3384504/location-of-parenthesis-for-auto-executing-anonymous-javascript-functions

http://kangax.github.io/nfe/#function-statements

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40488429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档