当我在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));
答案 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));