2011-03-14 58 views
19

我正在閱讀來自DocumentCloudUnderscore.js庫的文檔。許多功能採用可選的context參數,這個參數沒有解釋。我的猜測是,熟悉Ruby的人是這與Ruby binding類似。這與this意味着什麼有關。我的JavaScript使用的範圍是幾個jQuery調用和一些非常模板化的ajax。在JavaScript的Underscore.js庫中,「上下文」是什麼意思,我該如何使用它?

我的問題:context是什麼意思?我該如何使用它?一個好的答案可能應該包含一些關於JavaScript如何工作的信息。

回答

13

Javascript函數採用隱藏的this參數,該參數指示函數被調用的上下文。 (通常爲window)。但是,在對象上調用函數時,this將成爲調用它的對象。

帶回調函數的Underscore.js方法採用可選的context參數。如果指定了這個參數,回調將被調用context,這意味着回調中的this將等於上下文。

+3

這回答了問題的第一部分。現在,我應該什麼時候使用這種能力,以及我應該將「this」設置爲什麼?或者換句話說,這是一種很少使用的東西,除非它在別人的代碼中出現,否則我應該忽略它。 – 2011-03-15 01:15:05

+0

@John:如果您傳遞需要在上下文中調用的自己對象的成員函數,這很有用。 – SLaks 2011-03-15 01:21:43

+0

@SLaks:你能提供一個使用'context'的具體例子嗎? – jkndrkn 2013-04-29 20:33:29

相關問題