/ / Успадкування моделі, визначене з requirejs - knockout.js, requirejs

Модель спадщини, визначене requjs - knockout.js, requij

У мене є додаток wep, яке використовує обидва нокаути.бібліотеки js і require.js. Припустимо, що у мене є модель "Користувач" і модель "Клієнт". Я хочу, щоб модель клієнта успадковувалася від користувача, тому зараз у мене є такий код:

User.js

define(["knockout"], function(ko){

return function User(){

var self = this;
self.id = ko.observable();
self.firstname = ko.observable();
self.name = ko.observable();
};
});

Customer.js

define(["knockout", "model/user"], function(ko, User){

return function Customer(){

var self = this;
self.address = ko.observable();
};
Customer.prototype = new User();
});

Коли я створюю клієнта з таким кодом:

var c = new Customer();
c.id(1);
c.firstname("John");
c.name("Doe");
c.address("Unknown");

Тоді я отримаю таку помилку в консолі Chrome:

Uncaught TypeError: Object #<Customer> has no method "id"

Коли я встановлюю тільки властивість адреси, я не бачу цю помилку, тому я вважаю, що щось не так з успадкуванням. Будь-яка допомога дуже вітається.

Відповіді:

1 для відповіді № 1

Наступний рядок ніколи не буде виконано, оскільки ви використовуєте повернення до:

Customer.prototype = new User();

Оновити customer.js до цього:

define(["knockout", "model/user"], function(ko, User){

function Customer (){

var self = this;
self.address = ko.observable();
};
Customer.prototype = new User();
return Customer;
});