Czy zaleca się tworzenie właściwości obliczeniowych na obiekcie prototypowym?Korzystanie z prototypu dla właściwości KnockoutJS
To co ja próbował poniżej ale firstName
wiązania powrocie funkcji jako ciąg zamiast wykonywania go (http://jsfiddle.net/W37Yh).
var HomeViewModel = function(config, $, undefined) {
if (!this instanceof HomeViewModel) {
return new HomeViewModel(config, $, undefined);
}
this.firstName = ko.observable(config.firstName);
this.lastName = ko.observable(config.lastName);
};
HomeViewModel.prototype.fullName = function() {
return ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);
};
var model = new HomeViewModel({
firstName: "John",
lastName: "Smith"
}, jQuery);
ko.applyBindings(model);
Nie, tworzenie obiektów opartych na prototypach i nokaut zwykle nie pasują do siebie. – Niko
Po drugie, co powiedział mi niko, problem z prototypem polega na tym, że wszystkie instancje twoich obiektów będą próbowały dzielić te same obliczenia na prototypie. Bardzo źle. Bezpośrednią rzeczą, którą widzisz, jest pełna nazwa, to tylko funkcja zwracająca obliczony, a nie wyliczony, a więc ciąg. –