Knockout: obliczona obserwowalność vs funkcja

Kiedy korzystasz z nokautu, jaka jest zaleta korzystania z obliczalnych obserwacji tylko do odczytu, a nie prostych funkcji?

Weźmy następujący konstruktor modelu widoku i fragment kodu HTML, na przykład:

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>

Wszystko tutaj wydaje się działać zgodnie z oczekiwaniami, więc jest powód, dla którego zamiast tego powinienem użyć:

​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>

Zauważam, że dokumentacja nahttp://knockoutjs.com/documentation/computedObservables.html stwierdza, że ​​„... deklaratywne powiązania są po prostu zaimplementowane jako obliczalne obserwowalne”, więc czy to oznacza, że ​​muszę użyć ich bezpośrednio w moich modelach widoku?

questionAnswers(1)

yourAnswerToTheQuestion