このような「クラス」があるとしましょう (私はRequireJSを使用しています):
myClass.js
define(function() {
return function() {
this.color = 0;
this.setColor = function(color) {
this.color = color;
}
};
});
継承を有効にしたい場合は、次のようにします。
// later, in another file...
myClass.prototype = new superclass();
しかし、代わりに関数宣言内でプロトタイプを直接定義できないのはなぜですか?
define(['superclass'], function(superclass) {
return function() {
this.color = 0;
this.setColor = function(color) {
this.color = color;
}
this.prototype = new superclass;
};
});
これを実行すると、のメソッドmyClass
は継承されません。superclass
なんで?
前もって感謝します。