2012-10-16 162 views
0

從JavaScript的忍者服用,我看到:額外收益的優勢是什麼?

function bind(context, name) { 
    return function() { 
     return context[name].apply(context, arguments); 
    }; 
} 

是什麼上面的代碼之間的區別?

function bind(context, name) { 
    return context[name].apply(context, arguments); 
} 

我很困惑,爲什麼需要額外的回報?

謝謝

回答

4

第一次返回一個函數。

第二返回調用context[name]

的結果,它可以讓你的地方傳遞一個函數(因此它可以被稱爲),同時保持上下文(所以this值將是所需要的) 。

2

除了它們完全不同的事實嗎?返回一個包含函數調用的閉包,另一個調用該函數並返回其返回值。