javascript在函数里调用函数

请问在函数里调用函数是不是一定要加上();比方说途中的prepareGalerry();求大神帮忙回答下... 请问在函数里调用函数是不是一定要加上(); 比方说途中的prepareGalerry();求大神帮忙回答下 展开
 我来答
网海1书生
科技发烧友

2016-09-01 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12310 获赞数:26223

向TA提问 私信TA
展开全部

window.onload=函数;

这种写法,是把函数作为一个对象赋值给onload事件,这样当这个事件触发时就会执行这个函数了。

而如果是:

window.onload=函数();

这样就是让函数立即执行,然后把运行后的返回值再赋值给onload事件,这显然是错误的。


window.onload=function(){函数();}

这种写法,则是把一个匿名函数赋值给onload事件,然后在匿名函数内部再执行真正需要执行的函数。这里面的函数加上()就是正确的,而且是必须的,因为这个函数是在匿名函数被onload事件触发后才执行的,这个时候肯定就要立即执行啦。

而如果写成这样:

window.onload=function(){函数();}()   //请注意这后面是有括号的

就表示要立即执行匿名函数,然后把返回值赋值给onload事件,这当然也是错误的。


在函数名后面加括号,是表示要立即执行这个函数,这个跟是不是在函数里调用函数是没有半毛钱关系的,在任何地方如果需要运行某个函数都是要加括号的(如果函数运行需要参数,则参数写在括号里,如果没有参数,括号也不能省略!)。

而函数名不带括号,则表示把函数本身作为一个对象赋值给变量或者其他对象的某个属性,在这个过程中,函数并没有被执行,相当于是把自己克隆一份再送给别人。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式