Tôi có ba mô hình loại trực tiếp tương tự trong ứng dụng của mình và tôi muốn mở rộng mô hình cơ sở để kết hợp các đặc tính chung thay vì lặp lại bản thân ba lần.Knockout JS Model Inheritance
dụ
var ItemModel = function (item) {
var self = this;
self.order = ko.observable(item.order);
self.title = ko.observable(item.title);
self.price = ko.observable(item.price);
self.type = ko.observable(item.type);
};
var StandardItemModel = function (item, cartItemTypes) {
var self = this;
self.order = ko.observable(item.order);
self.title = ko.observable(item.title);
self.price = ko.observable(item.price);
self.type = ko.observable(item.type);
self.isInCart = ko.computed(function() {
return cartItemTypes().indexOf(item.type) > -1;
}, self);
self.itemClass = ko.computed(function() {
return self.isInCart() ? "icon-check" : "icon-check-empty";
}, self);
};
var CustomItemModel = function (item) {
var self = this;
self.order = ko.observable(item.order);
self.title = ko.observable(item.title);
self.price = ko.observable(item.price);
self.type = ko.observable(item.type);
self.icon = item.icon;
};
Tôi muốn sử dụng ItemModel như một lớp cơ sở và chỉ cần thêm các thuộc tính thêm khi cần thiết.
OK, nhưng câu hỏi của bạn là gì? Bạn có vấn đề gì trong quá trình tạo lớp cơ sở? – nemesv
câu hỏi của tôi là cách tiếp cận tốt nhất để làm điều này trong javascript là gì và nếu loại trực tiếp cung cấp một số tiện ích để đơn giản hóa nó. – BillPull