2016-02-04 40 views
-1

我想稍微复制forEach的功能,以便我可以更好地理解它。在forEach中,您可以使用参数'item'将其传递给匿名函数,然后它将为您提供数组中的项目。那么这是如何完成的?下面我有一个功能打印,我称为另一个函数与匿名函数作为参数。那么如何从匿名函数中提取名为'param'的参数并在定义中使用它。Javascript:如何获得回调的参数

function print() { 
    var param = 'param1' 
    a(function(param) { 
    console.log('execute a') 
    }) 
} 

function a(fn) { 
    //how can i access the fn's parameter list here? 
    //execute fn and do something with its parameter 
    fn() 

} 

print() 

我试图做到:其参数

回答

1

你完全误解参数一起运行功能“一”,并执行传递给它的匿名函数。

您的回调函数是一个函数。它的参数由调用它的代码传递(在a()中),就像任何其他函数一样。

如果你想传递一个参数到a(),你应该像传递任何其他参数一样传递它。


事实上,您的回调参数恰好与局部变量具有相同的名称是完全不相关的。

+0

SLaks,我不知道我明白你的意思。你是说上面的代码是错误的,不应该这样做? – user1142130

+0

@ user1142130:你的问题没有意义。您需要了解参数和功能的工作原理。你想做什么? – SLaks