让我提出一个有效的例子,然后跟进失败的地方,突出我的问题的要点。
在这里,我们调用了 3 个函数(1 个命名,2 个匿名):
var add = function(a, b) {return a+b};
var multiply = function(a, b) {return a*b};
function myFunction(fxn) {
return function(x) {
return function(y) {
return fxn(x,y);
}
}
}
myFunction(add)(2)(3)
可以理解,这个调用失败了:
myFunction(add)(2)(3)(4)
我如何检测调用了多少函数?在第二次调用中,我调用了 4 个函数(1 个命名函数,3 个匿名函数)。
我如何重写 myFunction
函数以补偿任何给定调用量?我知道我们可以检测到一个函数被赋予了多少个参数,但是有没有办法检测到有多少个函数被调用了?我希望我措辞正确。谢谢。
最佳答案
要查明变量是否包含对函数的引用,您可以使用以下代码:
if (typeof(v) === "function") alert("This is a function")
根据上面你可以知道有多少嵌套函数
function myFunction() {
return function() {
return function() {
return 1 + 2;
}
}
}
var count = 0;
var v = myFunction();
while (typeof(v) === "function") {
count++;
v = v();
}
alert("Nr of nested functions: " + count)
关于Javascript - 如何检测调用了多少函数? (多个括号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855357/