function a() { return 4; }
var b = a;
b(); // 4
console.log(b); //function a() { return 4; }
alert(a == a()) //false
alert(a == a())的结果是false,可是为什么是这样呢?什么时候用a,什么时候用a()?
谢谢
为什么你不console.log(a)
看看a到底是什么东西呢?
另外,你这里明明就只执行了一个b()
,没见到有执行a
,你要判断这俩相等好歹也来一个b() == a
的判断吧,我不太懂为什么你就这么钦定了a == a()
,这以后学习出了偏差……
a是个函数对象,a()是a函数执行后的返回值,题主认为哪里一样了?
a是一个函数,a()是a函数执行后的结果
函数名可以当成变量赋值给其他变量
var b = a; b指向了a的函数体,是把这个函数赋值给b变量
var b = a();是把a()的返回值赋值给b变量
所以b()=a()
-------补充------
因为 a是a()
而 a() 是4