我有一个基本的淘汰模型来处理列表,具有常见的功能(分页,排序等):
ListViewModel.js:
function ListViewModel() {
var self = this;
self.Items = ko.observableArray();
// other props and methods
}
return ListViewModel;
现在,我想为具体类UsersListViewModel重用(继承)此模型。什么是最好的方式(接受淘汰赛)呢?在UsersListViewModel中创建ListViewModel,或使用新字段和方法扩展ListViewModel?
现在我在UsersListViewModel中创建了一个ListViewModel对象,但我不喜欢这样:
UsersListViewModel:
function UsersListViewModel(model) {
var self = this;
self.List = new ListViewModel();
self.IsInitialized = ko.observable(false);
}
return UsersListViewModel;
答案 0 :(得分:3)
过去,当我们必须做这样的事情时,我们只使用了apply(http://jsfiddle.net/85TeD/1/):
function UsersListViewModel() {
var self = this;
ListViewModel.apply(self);
self.OtherProp = ko.observable("other");
}
如果要实现完整的经典继承,这是一个开始:http://www.crockford.com/javascript/inheritance.html