Knockout: berechnete beobachtbare vs. Funktion

Was ist bei der Verwendung von Knockout der Vorteil der Verwendung von schreibgeschützten berechneten Observablen anstelle von einfachen Funktionen?

Nehmen Sie zum Beispiel den folgenden viewmodel-Konstruktor und das folgende HTML-Snippet:

var ViewModel = function(){
    var self = this;
    self.someProperty = ko.observable("abc");
    self.anotherProperty = ko.observable("xyz");
    self.someComputedProperty = function(){
        return self.someProperty() + self.anotherProperty();
    };    
};

<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty()"></p>

Alles hier scheint so zu funktionieren, wie Sie es erwarten, und es gibt einen Grund, warum ich stattdessen verwenden sollte:

​var ViewModel = function(){
    var self = this;
    self.someProperty = ko.observable("abc");
    self.anotherProperty = ko.observable("xyz");
    self.someComputedProperty = ko.computed(function(){
        return self.someProperty() + self.anotherProperty();
    });    
};


<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty"></p>

Mir ist aufgefallen, dass die Dokumentation beihttp://knockoutjs.com/documentation/computedObservables.html stellt fest, dass "... deklarative Bindungen einfach als berechnete Observablen implementiert werden", bedeutet dies also, dass ich sie explizit in meinen Ansichtsmodellen verwenden muss?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage