(function(){}()) 和 (function(){})() 的区别

如流风般凌乱 2014-10-31 12:30:21
如题 求大神解答详细的区别
...全文
349 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2014-11-01
  • 打赏
  • 举报
回复
引用 楼主 f418366091 的回复:
如题 求大神解答详细的区别
(function(){}()) 和 (function(){})()没有什么区别。 这么写的作用只有一个——不让function关键字出现在行首。 一个函数后面的()实际上是执行函数的运算符。 因为function(){}有两种用法。 当function关键字出现在行首,它是一条“语句”,作为“语句”是没有返回结果的。所以不能用“语句”后面加()来执行函数 当function关键字不是出现在行首,它就是一条“表达式”,作为“表达式”就有返回结果了。可以用“表达式”后面加()来执行函数 为了不让function关键字出现在行首。 除了(function(){}()) 和 (function(){})() 还可以 [function(){}()] ~function(){}() +function(){}() -function(){}() !function(){}()
shopnc_02 2014-11-01
  • 打赏
  • 举报
回复
其实都不动手做就回答的,原来是这样,呜哈哈哈。
scscms太阳光 2014-10-31
  • 打赏
  • 举报
回复
刚才看错了,以上两函数区别都不大,都是执行函数 (function(){}()) //直接执行匿名函数,无法传参 (function(){})() //先定义匿名函数再调用执行,可传入参数
zhjdg 2014-10-31
  • 打赏
  • 举报
回复
没区别, 都能正确解释, 所以能正确运行。
thewallhz 2014-10-31
  • 打赏
  • 举报
回复
引用 楼主 f418366091 的回复:
如题 求大神解答详细的区别
第二个会调用,第一个不清楚。。。
scscms太阳光 2014-10-31
  • 打赏
  • 举报
回复
function(){}() 不能执行!会报错。 匿名函数因本身无法调用,所以一般用于回调,或者变量赋值里,或者对函数返回值执行运算,如:
    void function(){}();
    var a = function(){}();
    +function(){}();
    -function(){}();
    ~function(){}();
    !function(){}();
而js中()表示执行括号内的代码,如(alert("a")) 或常常用的 a==1 && (a = 0); 而(function(){})其实与function(){}()意思一样,但他们都是不能执行的,因为他们缺少函数名。 但(function(){})()又不一样了,括号内定义了一个匿名函数并马上执行,有了意义。而且这个函数我们修改下可以多次调用:
    (function(o){
        alert(o);
        return arguments.callee;
    })(1)(2)(3);
Dean_23_Li 2014-10-31
  • 打赏
  • 举报
回复
等大神解释,新人觉得 function(){}() 就和 (function(){})()一样了
slwsss 2014-10-31
  • 打赏
  • 举报
回复
看起来是一样的

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧