knockoutJs,何时使用ko.computed

时间:2012-10-04 19:30:03

标签: knockout.js

我对ko.computed很困惑。不知道何时使用它。我有2个陈述。你能否向我解释一下这些差异以及何时使用它们?

self.fullName = ko.computed(function() {
    return self.firstName() + " " + self.lastName();
});


self.fullName = function() {
    return self.firstName() + " " + self.lastName();
};

2 个答案:

答案 0 :(得分:5)

要显示fullName,这些选项中的任何一个都会产生相同的结果。计算机对函数的更好区别在于您可以分配读写子函数。这样,您可以使用计算值而不是单独的函数来更改observable。

fiddle中,您可以看到更改firstName或lastName,两者都会更改。但是如果你改变计算出的名字或姓氏,它将改变那个名字和功能。

另外,有关更多示例,请参阅computed documentation

答案 1 :(得分:0)

不同之处在于,当您使用ko.computed时,如果绑定到fullName,则只要firstName或lastName更改,fullName将自动更新。没有ko.computed,你必须自己做这项工作。