作为另一个函数JavaScript的参数

时间:2017-03-01 17:32:57

标签: javascript function

当我在func2中将其作为参数调用时,我需要访问func2中func1的参数,这里是带注释的代码:

let func1 = (x, y) => x + y;

let func2 = function(func1) {
    /* How can i get access to arguments of func1 here, when i call it like that: func2(func1(1, 2)); */
    return func1;
}

func2(func1(1, 2));

2 个答案:

答案 0 :(得分:0)

您最终必须将func1包裹在您自己的函数中:

let func1 = (x, y) => x + y;

let func2 = function(func1) {
    return (...args) => {
        // args is now the arguments that are being passed to func1
        return func1(...args);
    }
}

// Call it like this:
func2(func1)(1, 2);

那应该能得到你所需要的东西,因为正如易卜拉欣在评论中提到的那样,你正在传递它的回报价值。 func2(func1(1, 2))变为func2(3)

答案 1 :(得分:0)

您可以尝试将func1中的参数传递给对象并返回该对象。这将意味着重新设计我想象的应用程序的其他部分,但它不应该是太多的工作。它必须用常规函数来完成,因为箭头没有参数。 jsbin of the code running here

const func1 = function(x, y) {
  const args = arguments
  return {
    args: args,
    main: x + y,
  }
}

const func2 = function(func1) {
    const otherArguments = func1.args
    console.log(otherArguments)
    return func1.main;
}

func2(func1(1, 2));