2017-03-01 88 views
-1

我需要访问FUNC1的论点FUNC2当我把它叫做在FUNC2的说法,这里是带注释的代码:你最终不得不函数作为参数到另一个函数的JavaScript

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)); 
+4

你没有传递函数作为参数,你传递它的返回值!最后一行与'funct2(3)'相同;'! –

+3

如果你想知道参数,你需要做一些类似func2(func1,1,2)的操作。 – juvian

+0

我不相信你不能按你想要的方式做你想做的事。你能更清楚地了解你的最终目标吗? –

回答

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

+0

这看起来比我的答案好 – spirift

相关问题