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