1
在教程中,我看着下劃線這段代碼是用來證明_.each
:Javascript underscore.js-我必須使用上下文參數和'this'嗎?
var people = {
names: ['Craig', 'John', 'Dan', 'Elijah'],
getMessage: function(name) {
return 'Hello there, ' + name + '!';
}
};
_.each(people.names, function(element, index, list) {
console.log(this.getMessage(element))
}, people);
它解釋說,people
被作爲綁定this
到people
對象的上下文爲_.each
呼叫通過,但我不不明白爲什麼這是必要的。在迭代器函數體內我不能明確寫出people.getMessage
?
,如:
_.each(people.names, function(element, index, list) {
console.log(people.getMessage(element));
});
爲什麼使用this
並在上下文傳遞呢?
因爲那麼函數可以推廣到適用於任何對象而不是一個特定的對象。 –
_爲什麼這是必要的_這是不必要的,但非常有用 – hindmost
「上下文」是一個濫用JavaScript的術語。將「*作爲*的上下文」替換爲「to」,也許它更有意義。說「*人*被分配給函數的* this *」也是更正確的,因爲這會發生。 – RobG