2 bogexueqianduan bogexueqianduan 于 2016.02.17 11:00 提问

这种行为在JS里叫什么?

先上代码

 function aa(){
  alert("123");
}

var bb=aa();

上面这段代码中
var bb=aa();
这条语句属于什么行为?
是调用函数?
还是声明一个函数表达式?
我之所以这样问,是因为,这段代码alert了123,
我的疑惑在我只是声明了一个var bb却执行了函数,如果把上段代码写成一个表达式:

 var bb=function(){
  alert("123")
};

就不会alert,123

求解 谢谢

4个回答

showbo
showbo   Ds   Rxr 2016.02.17 11:37
已采纳

调用aa函数,将aa函数返回值赋值给bb,第二种是将函数赋值给bb,你没有调用当然不会alert

var bb=function(){
alert("123")
};
bb()

qingfeizi
qingfeizi   2016.02.17 11:15

把函数aa 看成一个对象 。 括号的意思是 执行这个函数。 var bb=aa(); aa赋值给bb 并且执行了。 var bb=aa; 代表不执行 可以在写bb(); 执行。
var bb=function(){
alert("123")
};
这个是 只定义了一个函数。
写成这样子就执行了:
var bb=function(){
alert("123")
}();

enpterexpress
enpterexpress   2016.02.17 11:20

js对象赋值

Royal_lr
Royal_lr   Ds   Rxr 2016.02.17 15:43

var bb=function(){
alert("123")
};
这只是声明了一个函数,,调用就行了,,,

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!