众所周知,下面的代码不会运行a()函数,因此弹出框不会出现。
然而,如果我们运行下面的代码,a()函数将会被调用并且警告框"A!"也将显示出来,就像上面的第二段代码一样。
// 1st
function a() {
alert('A!');
return function() {
alert('B!');
};
};
我们知道下面的代码将运行a()函数,并且弹出一个警告框'A!'
// 2nd
function a() {
alert('A!');
return function() {
alert('B!');
};
};
a(); // calling function
// 3rd
function a() {
alert('A!');
return function() {
alert('B!');
};
};
var x = a(); // assigning function to new variable
问题: 为什么在第3段代码中会发生这种情况?我们还没有调用a()函数(根据我的理解)。我们只是将x分配给了a()函数吗?
x
。 - Rajaprabhu Aravindasamy()
的内容都会查找该名称的函数/方法并调用它...无论您在哪里编写! - Rayona
,而不是a()
。 - Frax