javascript,请教一下关于匿名函数包括函数体的那对括号的作用?
怪我咯
怪我咯 2017-04-11 10:21:08
[JavaScript讨论组]

最近在学习javascript,看到匿名函数的时候有点不了解。在网上看到一篇关于匿名函数的文章,里面有一段代码是这样的:

    alert((function(x,y){return x+y;})(2,3)); //5

下面解释到:
很多人或许会奇怪,为什么这种方法能成功调用呢?觉得这个应用奇怪的人就看一下我以下这段解释吧。
大家知道小括号的作用吗?小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function对象。因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。

但是我把代码改成这样:

alert(function(x,y){return x+y;}(2,3)); //5

执行出来的效果也一样的。
想请教一下,这个括号加于不加的区别在哪?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
伊谢尔伦

这种函数叫立即执行函数,两种写法没什么区别。
除了一种情况,就是你连写了多个立即执行函数,并且用运算符连接。

可以参考下这篇文章
立即执行函数写法理解

高洛峰

立即执行函数, 写成下面这样就很好理解了.

var a = function(x,y){return x+y;}
var b = a(2,3);
alert(b);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号