Javascript中带有双括号的函数调用
Function calling in Javascript with double brackets
本文关键字:函数调用 Javascript 更新时间:2023-09-26
当我用双括号调用函数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"();
或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小提琴:这里
如果您想在hi
之后立即调用hello
函数,请尝试以下操作:
function hi()
{
document.write("hi");
return hello; //<-- no quote needed
// In this context hello is function object not a string
}
你可以
使用eval()
来执行它,即使它是字符串:eval(hi()+'()');
相关文章:
- 使用评估函数调用 javascript 函数作为文本框 Asp.net 参数
- 从动态加载的内部函数调用Javascript函数
- python函数调用javascript自动完成
- 当其他函数调用Javascript时运行我的代码
- 函数调用 JavaScript
- 处理快速连续的函数调用 - Javascript / underscore.js / node.js
- 如何从Jquery函数调用javascript
- web服务器php上的定时函数调用?javascript
- 冒号运算符“:"函数调用(javascript)之前
- 未定义从php代码函数调用javascript函数
- 我如何找出多少次函数调用javascript/jquery
- 如何传递一个scriptlet变量到onclick()函数调用javascript
- 当原型函数调用javascript中的常规函数时会发生什么?
- 从asp.net中的代码后面函数调用Javascript
- 从外部函数调用Javascript即时函数
- InternetExplorer8被函数调用(JavaScript)阻塞
- 直接函数与另一个函数调用Javascript
- 在函数调用javascript之间保留变量值
- 从PHP函数调用Javascript函数
- “this"在函数调用javascript