js中的自调用函数

在backbone.js中开始部分由类似这样的调用(fn(param1,param2){}(instance1,fn(param3){}))这儿当浏览器加载脚本时,自动执... 在backbone.js中开始部分由类似这样的调用
(fn(param1,param2){
}(instance1,fn(param3){}))
这儿当浏览器加载脚本时,自动 执行,instance, fn(param3){}是传递给fn(param1,parm2)的实参,这种调用和下面的(括号的地方改变)
(fn(param1,param2){
})(instance1,fn(param3){})
有什么区别????这种自加载函数有什么优势???
展开
 我来答
qweasd8771
2014-02-26 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:83.3万
展开全部
没什么区别吧,都是隐式声明一个函数并调用。
优势知道一点,就是隐式函数里面的参数不会与其它框架的全局变量冲突。
比如,在隐式函数里面定义一个变量var a;
而你项目里面可能有其它地方会定义一个全局变量var a;
如果不用这中方式,那会干扰用到这个全局变量的代码
whenevery00
2014-02-26 · TA获得超过430个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:236万
展开全部
(function(){}()) 外面一个括号的 是直接获取返回值
里面计算一次
(functuon(){})() 外面2个括号并排的
是先计算前面括号的值 然后执行这个返回值 当然返回的肯定要是函数
前面是包在一起
整体性要好一些
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
跨境老鸟Jack
2020-04-18 · TA获得超过211个赞
知道答主
回答量:77
采纳率:0%
帮助的人:2万
展开全部

自调用函数的目的是:开启一个新的局部作用域,防止命名冲突,英文工作中有时一个项目很大,一个项目中有很多个.js文件,单个.js文件函数名不会冲突,但多个.js文件,函数名因为记不住那么多而写为可能会写成一样

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tsotsi
2014-02-26 · TA获得超过940个赞
知道小有建树答主
回答量:1367
采纳率:55%
帮助的人:682万
展开全部
应该没什么区别,方便。对于本来就执行一次的函数,不用在声明之后再调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式