请问javascript 中函数调用的问题,带括号的和不带括号有什么区别啊?

问题描述:

请问javascript 中函数调用的问题,带括号的和不带括号有什么区别啊?
比方说:
var img1 = document.getElementById("img1");
img1.onclick = abc; 与img1.onclick = abc();
这两个有什么区别啊?
1个回答 分类:综合 2014-09-24

问题解答:

我来补答
例:
function Myfun(){}//这是一个函数,就是一个方法体,在{与}之间可以实现很多计算或操作
var Myfun;//这是一个变量,只负责储存一个对象,对象包括数值\数组\字符串\方法体\控件\空值等
如果Myfun=Myfun();
那么Myfun就记录了方法体Myfun(),Myfun就是Myfun();
但是Myfun()就不能=Myfun,因为Myfun()不是一个变量,不负责储存
理解了上面的内容就容易理解下面的内容了
img1.onclick = abc;
很显然abc是一个变量,他可能是前面赋过值的一个对象也可能没赋过值是空值
在你的例子里,abc应该是被赋过一个方法体的变量,因为onclick是执行方法的
img1.onclick = abc();
就是img1的鼠标单击事件执行的abc()方法体
abc()是一个函数
 
 
展开全文阅读
剩余:2000
上一页:第九题,详解
下一页:gyyv