提问人:navedhn 提问时间:11/23/2022 最后编辑:Martijn Vissersnavedhn 更新时间:11/24/2022 访问量:23
可以使用默认参数值与相同的函数名称
It is possible to use default parameter value its same function name
问:
我想知道是否可以在其默认参数中使用函数本身。
function somename(a,b=somename()){
return a+b;
}
somename(10);
答:
2赞
CertainPerformance
11/23/2022
#1
当然可以,只要你设计的逻辑不会进入无休止的递归循环。例如:
function somename(a, b = somename(3, 5)) {
return a + b;
}
console.log(somename(10));
0赞
pope_maverick
11/24/2022
#2
是的你可以。
功能与它的身体一起被吊起。因此,参数和内部用途被视为环境,而不是函数本身。除非您不小心调用了调用签名“()”的函数
eg: someName() // invoking the function someName
someName // will search for the variable definition along the scope chain.
因此,如果你不小心在里面调用了该函数,你最终会得到一个递归调用的无限循环,除非有一个条件从它返回
eg:
function someName(a = someName) {
someName(); // Now you are invoking the function with the signature :()"
}
评论
0赞
Bergi
11/24/2022
它甚至适用于未提升的命名函数表达式
评论