私はknockout.jsライブラリとrequire.jsライブラリの両方を使用するwepアプリを持っています。「ユーザー」モデルと「顧客」モデルがあるとします。CustomerモデルをUserから継承したいので、次のコードがあります。
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'
アドレスプロパティのみを設定した場合、このエラーは表示されないため、継承に問題があると考えられます。どんな助けでも大歓迎です。