重用淘汰模型的最佳实践

时间:2013-11-14 12:14:19

标签: javascript knockout.js

我有一个基本的淘汰模型来处理列表,具有常见的功能(分页,排序等):

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;

1 个答案:

答案 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