3

我对 ko.computed 感到很困惑。不确定何时使用它。我有 2 个陈述。你能向我解释一下有什么区别以及何时使用它们吗?

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


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

2 回答 2

5

对于显示全名,这些选项中的任何一个都将导致相同的结果。使计算与函数更好的区别在于您可以分配读写子函数。这样,您可以使用计算值而不是单独的函数来更改 observables。

小提琴中,你可以看到如果你改变了名字或姓氏,两者都会改变。但是,如果您更改计算的名字或姓氏,它也会更改该名称和函数。

此外,请参阅计算文档以获取更多示例。

于 2012-10-04T19:34:54.383 回答
0

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

于 2012-10-04T19:46:35.023 回答