まず、プロトタイプベースの継承を理解していない場合は、それについて学ぶことをお勧めします。それは実際には本当に簡単です。
第二に、これを間違った方法で受け取らないでください - あなたのコードは私を嫌っています。私はあなたが古典的なバックグラウンドを持っていることを理解しており、あなたの努力に敬意を表します. しかし、本当のことを言えば、お金をもらったとしてもあなたのコードを読みたくありません。
これは私がやったことです(私のプログラムがあなたが探しているものではない場合は修正してください。しかし、あなたのコードで何が起こっているのか本当にわかりません):
// baseClass.js
function BaseClass() { // class BaseClass
var extendedObject = new Extension;
}
// extension.js
Extension.prototype = new BaseClass; // Extension extends BaseClass
Extension.prototype.constructor = Extension; // reset the constructor property
function Extension() { // class Extension
// some private variables
var privateVar = null;
function privateFunction() {}
// some public properties
this.publicVar = null;
this.publicFunction = function () {};
}
さらに、あなたは古典的なバックグラウンドを持っているので、継承の古典的なスタイルに沿ったコードを書くのに役立つかもしれません。この回答を読んでください。それはあなたを大いに助けます。
編集:私のスクリプトを使用すると、次のように JavaScript でクラスを作成できます。
baseClass.js
:
/*
class BaseClass {
var extension;
function constructor() {
extension = new Extension;
}
}
*/
var BaseClass = new Class(function () {
var extension;
function constructor() {
extension = new Extension;
}
return constructor;
});
extension.js
:
/*
class Extension extends BaseClass {
var secret;
function constructor() {
secret = null;
}
this.getSecret = function () {
return secret;
};
this.setSecret = function (newSecret) {
secret = newSecret;
};
}
*/
var Extension = new Class(function () {
var secret;
function constructor() {
secret = null;
}
this.getSecret = function () {
return secret;
};
this.setSecret = function (newSecret) {
secret = newSecret;
};
return constructor;
}, BaseClass);
あなたはフィドルをいじるかもしれません。