当我hi()()
用双括号调用函数时,函数会显示hi
输出,它也会给出错误提示,这hi
不是函数。
<html>
<head></head>
<script>
function hello()
{
document.write("hello");
}
function hi()
{
document.write("hi");
return "hello";
}
hi()();
</script>
</html>
()()
使用函数名是什么意思?
当我hi()()
用双括号调用函数时,函数会显示hi
输出,它也会给出错误提示,这hi
不是函数。
<html>
<head></head>
<script>
function hello()
{
document.write("hello");
}
function hi()
{
document.write("hi");
return "hello";
}
hi()();
</script>
</html>
()()
使用函数名是什么意思?
hi
如果返回一个函数而不是函数名,双括号会很有用,例如
function hi(){
return hello;
}
hi()();
这大概就是本意。
将评估为函数的内容放在()
后面将调用该函数。所以,hi()
调用函数hi
。假设hi
返回一个函数,然后hi()()
将调用该函数。例子:
function hi(){
return function(){return "hello there";};
}
var returnedFunc = hi(); // so returnedFunc equals function(){return "hello there";};
var msg = hi()(); // so msg now has a value of "hello there"
如果hi()
不返回函数,hi()()
则会产生错误,类似于键入类似"not a function"();
or的内容1232();
。
()() 表示调用一个函数,如果返回另一个函数,第二个括号将调用它。请参见下面的示例:
function add(x){
return function(y){
return x+y;
}
}
添加(3)(4)
输出:7
在上述情况下,add(4) 将被调用以添加函数,add(3) 将被调用以返回函数。这里参数 x 的值为 3,参数 y 为 4。
请注意:我们使用括号进行函数调用。
此函数的返回值是一个字符串,它不是可调用对象。
function hi()
{
document.write("hi");
return "hello"; // <-- returned value
}
但是如果你想多次调用这个函数,你可以使用 for 循环或其他一些东西。
hi()() 示例:
function hi(){
return function(){ // this anonymous function is a closure for hi function
alert('some things')
}
}
JS 小提琴:这里
如果您想在尝试此操作hello
后立即调用函数:hi
function hi()
{
document.write("hi");
return hello; //<-- no quote needed
// In this context hello is function object not a string
}
eval()
即使它是字符串, 您也可以使用它来执行它:eval(hi()+'()');