2015-04-05 43 views
3

功能,請給我解釋一下這兩個語句之間的區別。哪一個正在調用函數「connect」。連接是用戶定義的功能。JavaScript調用事件

`peer.on('connection', connect);` 

f.on('open', function() { 
    connect(f); 
    }); 

回答

1

雙方將調用connect事件發生時。主要區別在於第一個獲取由事件子系統設置的參數,因爲它由任何管理事件直接調用。如果你的函數不使用任何參數,或者它的參數與事件系統傳遞的參數完全匹配,那麼第一個函數可以正常工作。

在第二個,您可以控制發送到​​這樣可以使你想要的任何論點的論據。所以,如果你想自己控制參數,那麼第二個代碼塊會給你這個選項。

1

真的是沒有太多使用命名函數作爲回調和使用匿名函數作爲回調的第二個例子從一個例子相差一邊的。如果你需要重複使用它們,或者如果你只是想有超過你的回調的組織更好地控制命名的回調是有用的。

不管怎樣,經過「上」執行完成的功能將被調用。

有關回調的詳細信息,看看http://javascriptissexy.com/understand-javascript-callback-functions-and-use-them/

+0

你錯過了,主要區別在於,在第二個代碼塊,你控制傳遞給'連接(參數)',而不是僅僅接受任何事件處理系統通過。也就是說,在我看來,使用第二種形式的主要原因。 – jfriend00 2015-04-05 06:52:11

+0

我解釋了一個問題,一個名爲回調VS匿名回調,但是在你理解它的上下文(可能更準確),你提供了一個更好的答案。從我+1。 – 2015-04-05 06:58:17

+0

優雅的舉動,你upvoted競爭的答案。我喜歡你提供的參考資料來幫助理解回調。 – jfriend00 2015-04-05 07:23:34