让我提出一个有效的例子,然后跟进失败的内容,突出我的问题。
在这里,我们调用了3个函数(1个名为,2个匿名):
myFunction(add)(2)(3)(4)
可以理解,此调用失败:
myFunction
如何检测调用的函数数量?在第二个调用中,我调用了4个函数(1个命名,3个匿名)。
如何以补偿任何给定数量的呼叫的方式重写Private Sub Workbook_Open()
ActiveWorkbook.ActiveSheet.Buttons.Delete
Dim CommandButton As Button
Set CommandButton = ActiveWorkbook.ActiveSheet.Buttons.Add(1200, 100, 200, 75)
With CommandButton
.OnAction = "Test_Press"
.Caption = "Press for Test"
.Name = "Test"
End With
End Sub
函数?我知道我们可以检测到一个函数有多少参数,但有没有办法检测被调用的函数数量?我希望我说得对。感谢。
答案 0 :(得分:0)
要查明变量是否包含对函数的引用,可以使用以下代码:
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)

答案 1 :(得分:0)
即使这没有实际用例我也能想到,这是一个可能的解决方案:
var add = function(a, b) {
return a + b
};
var multiply = function(a, b) {
return a * b
};
var counter = 0;
var result = 0;
function myFunction(fxn) {
counter = 1;
result = 0;
return function first(x) {
++counter;
return function second(y) {
++counter;
x = result ? result : x;
result = fxn(x, y);
return second;
}
}
}
myFunction(add)(1)(2)(3)(4);
alert('Result is: ' + result + '; Parentheses count: ' + counter);