2014-09-10 12 views
0

這可能被認爲是一個愚蠢的問題。但我在腦海中有一些困惑,這就是爲什麼我要問問題here.In本網站here。我覺得這個網站非常informative.There是一些定義的回調函數說明有哪些是回調函數的定義以及它如何適合array.prototype.forEach/map/filter方法

1.可傳遞給另一個函數作爲參數

2.可使用clousers。

3.可以在容器函數內的任何點訪問。

但是,有回調的另一個定義是:

值得注意的是,回調函數不立即執行 是很重要的。這是「召回」(因此得名)在某個指定 點包含函數體內

了適合任何點擊events.like document.getElementById('id').onclick=function(){};

但是它如何適應數組的方法,如的forEach,地圖,過濾器,一些和每一個。它似乎是他們在運行時立即調用。我不能在任何我想要的地方使用它們根據定義3。我不知道他們是否可以用作clousers,因爲我不是JavaScript專家,仍然試圖學習。所以它適合javascript中回調的定義。

回答

2

A不會將這些語句視爲定義。如果你正在尋找一個定義,請檢查你最喜歡的計算機科學書籍。或Wikipedia

回調是作爲參數傳遞給其他代碼,這有望回電(執行)在一些方便的時間的參數傳遞的一段可執行代碼。

該文章僅聲明特定用途,作爲onclick事件偵聽器的回調,並未立即執行。這並不適用於所有回調。維基百科接着說:

調用可立即作爲一個同步回調,也可能在稍後的時間發生,因爲在異步回調

並非JavaScript中的所有回調都是異步的(另請參閱thesequestions)。但是,它們通常與異步相關聯,因爲JavaScript中的所有異步任務都使用回調。

,我不能在任何地方我依照定義3

你不想使用它們。 map,filter等 - 「容器功能」 - 但是。他們從他們想要的任何循環中呼喚他們。

我不知道他們是否可以作爲clousers

是。所有的JavaScript函數都是closures - 它們可以訪問它們的父範圍,而不管它們被調用的地方。

相關問題