函数名 和 "函数名()"
什么时候直接用函数名调用函数,什么时候要用"函数名()"?
什么时候直接用函数名调用函数,什么时候要用"函数名()"?
2015-07-25
以我的理解,给你举个例子,参考参考:
function ab(){ return c; } var me = ab(); // (1) var me = ab; // (2)
(1)是调用;(2)是赋值。
【(1)中,等价于 var me = c。那么这是赋值还是调用?不要被误导,这是调用。先调用了函数ab,调用完返回了c,赋值给变量me。】
那么在什么情况下是赋值?
比如 btn.onclick = ab;这种情况,就是把函数给系统,让系统去调用。为什么不是btn.onclick = ab(); 如果是这样,文件加载到这一行,他就会直接执行,执行完,如果有返回值,就会给btn.onclick返回值,如举例中返回的是c。如果没有返回值,则返回null,这样相当于btn.onclick = null。
举报