javascript - 调用动态传递给函数的参数 - JavaScript

标签 javascript function callback

我有以下功能:

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"); });

如果第三个参数传入,我需要调用它。我可能有 23参数被传递给 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/

相关文章:

iphone - UITableView 动画的回调

ruby-on-rails - 在 Rails 中运行另一个方法之前调用一个方法

javascript - Safari 中的页面重新加载行为

php函数从mysql表中选择数据

c - 在 Inno Setup 中使用回调显示来自外部解压 dll 的文件名

javascript - 函数剩余参数抛出错误

java - 让函数返回 JLabel 并将其添加到 JFrame

javascript - 将数据渲染成 Angular 时遇到问题

javascript - IF ELSE 语句在第一个 IF 上始终返回 True

javascript - Requirejs Optimizer r.js 不与节点一起工作