我使用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个项目在他们的项目数组,即使我只加一个项目反对原始数据类型正常工作(正如显示的id属性所示),但数组不起作用。如果我将items数组和add方法移动到超类,我也没有关系,我已经尝试过了。
有没有办法让这个工作?这是Prototype中的一个bug还是JavaScript本身的东西? :-)
哇,快速解答。而且也是正确的!非常感谢,非常感谢。 – Jerry 2009-08-27 14:20:25