私はサブクラスによって拡張されたクラスを作成するために、prototype.jsの(www.prototypejs.orgから)ライブラリを使用しています。私はこれらのクラスのインスタンス内で配列を使用することに問題があります。私はこれを説明するための例を作りました:クラスprototype.jsの中の継承と配列
var SuperClass = Class.create({
initialize: function(id) {
this.id = id;
}
});
var SubClass = Class.create(SuperClass, {
items: [],
add: function(arg) {
this.items[this.items.length] = arg;
},
initialize: function($super, id) {
$super(id);
}
});
var a = new SubClass("a");
var b = new SubClass("b");
a.add("blah");
alert(a.id + ": " + a.items.length);
alert(b.id + ": " + b.items.length);
ここでの問題は、私は唯一の商品を追加しても、第一および第二のアラートは、それぞれのオブジェクトは、その項目の配列内の1つのアイテムを持っていることを示します両方ということですaに反対する。プリミティブデータ型は正常に動作します(idプロパティが正しく表示されているように表示されます)が、配列は機能しません。また、アイテム配列とaddメソッドをスーパークラスに移動しても問題はありません。すでに試してみました。
これを動作させる方法はありますか?これはPrototypeのバグですか、これはJavaScriptの性質のものですか? :-)
うわー、迅速な解答:
は、ここではいくつかの例です。そして右のものも!ありがとう、本当にそれを感謝します。 – Jerry