我有以下功能:
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
。如果它存在,我该如何访问第三个参数?
答案 0 :(得分: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);
})()