我们都知道,下面的不会运行a()函数,因此警告框不会出现
// 1st
function a() {
alert('A!');
return function() {
alert('B!');
};
};
我们知道,下面的代码将运行a()函数和警告框'A!‘将出现
// 2nd
function a() {
alert('A!');
return function() {
alert('B!');
};
};
a(); // calling function
但是,如果我们运行下面的代码,a()函数将被称为和警报框'A!‘也会出现,就像上面的第二段代码一样
// 3rd
function a() {
alert('A!');
return function() {
alert('B!');
};
};
var x = a(); // assigning function to new variable
问题:为什么会发生这种情况(在第3段)?我们还没有调用a()函数(我目前的理解)。我们不是刚把x赋值给()函数吗?
发布于 2016-04-16 12:23:06
我们不是刚把x赋值给()函数吗?
不,您将返回的值从a()分配给x。
如果你不想打电话给a,那就打
var x = a;以后再做
x();https://stackoverflow.com/questions/36664097
复制相似问题