创建像这样的viewmodel之间是否有区别:
var viewmodel = {
firstName: ko.observable(),
lastName: ko.observable()
}
和
function Person(firstName, lastName) {
this.firstName = ko.observable(firstName);
this.lastName = ko.observable(lastName);
}
viewModel = new Person('john', 'doe');
我问,因为我试图在第一种方式添加原型功能,而不是让我。像这样:
viewModel.prototype.toJSON = function () { .. }
浏览器抱怨原型未定义。我只是想做this article所展示的......但我遇到了这个问题。我正在考虑它,因为我创建视图模型的方式不同。但不确定。
答案 0 :(得分:1)
考虑它的一种方法是使用第一种方法,你只能有一个对象的单个实例,所以原型没有多大意义。要向其添加toJSON方法,您只需将其定义为viewmodel.toJSON = function(){; };
使用第二种方法,您可以拥有多个具有不同属性值的Person实例。 prototype允许您将toJSON函数添加到Person的所有实例。