我有以下功能:
function foo(f, k) {
if (f.length > 2) {
// how do I access the third element of f?
// it can be a function retry() or undefined.
// var retry = f.arguments[2]; ??
// retry();
// console.log(f.arguments) returns undefined
} else {
k();
}
}
var retry = function() { console.log("hi"); };
foo(function(x, y) { console.log(x+y); },
function() { console.log("hello"); });
foo(function(x, y, retry) { console.log("retry present"); },
function() { console.log("hello"); });
如果第三个参数传入,我需要调用它。我可能有 2
或3
参数被传递给 f
。如果存在第三个参数,我如何访问它?
最佳答案
你可以尝试这样的事情:
编辑 1
根据@Bergi的评论更新了代码
function print(b) {
return (b);
}
function notify(a, b) {
var args = arguments;
var params = args[0].toString().split("(")[1].split(")")[0].split(",");
if(params[2]){
console.log(eval(params[2])(b))
}
}
(function () {
var a = 10,
b = 20;
notify(function (a, b, print) {}, b);
})()
关于javascript - 调用动态传递给函数的参数 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33886341/