2016-02-04 102 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