我对ko.computed很困惑。不知道何时使用它。我有2个陈述。你能否向我解释一下这些差异以及何时使用它们?
self.fullName = ko.computed(function() {
return self.firstName() + " " + self.lastName();
});
self.fullName = function() {
return self.firstName() + " " + self.lastName();
};
答案 0 :(得分:5)
要显示fullName,这些选项中的任何一个都会产生相同的结果。计算机对函数的更好区别在于您可以分配读写子函数。这样,您可以使用计算值而不是单独的函数来更改observable。
在fiddle中,您可以看到更改firstName或lastName,两者都会更改。但是如果你改变计算出的名字或姓氏,它将改变那个名字和功能。
另外,有关更多示例,请参阅computed documentation。
答案 1 :(得分:0)
不同之处在于,当您使用ko.computed时,如果绑定到fullName,则只要firstName或lastName更改,fullName将自动更新。没有ko.computed,你必须自己做这项工作。