在另一个函数的调用中调用函数
我想从另一个函数的调用中调用一个函数。在另一个函数的调用中调用函数
如果我这样做,它可以正常工作。这返回'x':
function returnval() {
return ("x");
}
alert(
returnval();
)
但是我怎样才能做同样的事情,同时在函数调用内部声明returnval函数?我已经尝试了这一点,以及其他所有我能想到的,都无济于事。它返回“功能(){回报(‘X’);})”,而不是本身的价值,“X”:
alert(
function() {
return ("x");
}
)
本着同样的精神,我想包括if语句的功能电话也是如此。这是可能吗?
任何帮助,将不胜感激。 :)
有一件事,叫做即时函数调用。你调用一个函数只是声明之后:
(function() {
// ... function body
})()
在函数调用中,您甚至不需要额外的括号,因为语法上下文使'function'关键字明确无误。 – Pointy 2012-03-29 18:12:25
@Pointy〜我每天都会学到新的东西。 :D – 2012-03-29 18:17:59
您需要调用该函数。像
alert(
(function() {
return ("x");
})();
)
(function(){})()
构造被称为自调用函数。
如果你不想这样做,你可以这样做
var f = function() {
return ("x");
};
alert(f());
(function(){
alert('xxx');
}(); //alert('xxx');
所以用这样的:
alert((function() {
return ("x");
})()
);
函数是JavaScript的第一类对象,意义它们可以被分配给变量,传递并存储以供以后使用。
您发布的语法是将函数本身传递到alert
。你想要做的是调用函数,它的返回值传递给alert
:
alert(
(function() {
return ("x");
})() // Invoke the anonymous function
);
alert
不是“另一个函数的调用”。您将函数作为参数传递给函数。在警报的情况下,这只会警告JavaScript中的对象。你可以通过调用函数的结果做如下操作:
alert(
function() {
return ("x");
}();
);
Hurray省略了不必要的(无害的)附加括号:-) – Pointy 2012-03-29 18:14:50
真的你需要的是在函数关闭后的'()'。尽管有所有有用的答案,但函数附加的括号不是必需的:-) – Pointy 2012-03-29 18:14:08
@Pointy。告诉'SyntaxError',我得到了,试图像你说的那样执行函数。 – kirilloid 2012-03-29 18:21:59
没有。 'alert(function(){return“Hi”;}());'不是语法错误。当然,你需要alert()函数调用的括号;我的意思是你不需要额外的**层括号。 – Pointy 2012-03-29 18:30:49