为什么我们在ko.computed中传递'this'

时间:2013-06-04 09:41:36

标签: knockout.js knockout-2.0

我正在从官方网站上学习淘汰赛,这是我从网站上获取的教程

// This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
function AppViewModel() {
this.firstName = ko.observable('');
this.lastName = ko.observable("Bertington");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();    
}, this);
}

// Activates knockout.js
ko.applyBindings(new AppViewModel());

我想问一下,将此作为参数传递给计算函数

的目的是什么
ko.computed(function() {
return this.firstName() + " " + this.lastName();    
}, this);

谢谢

1 个答案:

答案 0 :(得分:2)

因为在Javascript中这个大部分时间都不是您期望的C#,C ++或Java Developer POV。

此参数确保在计算计算的observable的新值时, this 实际上绑定到viewmodel,而不是调用方法的此上下文,例如事件处理程序。 / p>