使用John Resigs简单javascript继承修改类属性
目前我正在尝试使用John Resigs Simple Javascript继承库,这非常有效,但当我尝试修改默认成员变量时,它似乎会影响原型,而不仅仅是实例:使用John Resigs简单javascript继承修改类属性,javascript,Javascript,目前我正在尝试使用John Resigs Simple Javascript继承库,这非常有效,但当我尝试修改默认成员变量时,它似乎会影响原型,而不仅仅是实例: 如您所见,每次创建新实例时,事件的长度都不同。我是以错误的方式使用库,还是这是一个已知的缺陷?有哪些替代方案?这里的问题是您正在使用事件扩展类:[] 数组(和{}对象)变量是引用。因此,通过使用数组扩展该类,该类的每个实例都将有一个events等于相同的引用数组 要想避开这一点,你可以这样做 var Test = Class.exte
如您所见,每次创建新实例时,事件的长度都不同。我是以错误的方式使用库,还是这是一个已知的缺陷?有哪些替代方案?这里的问题是您正在使用
事件扩展类:[]
数组(和{}
对象)变量是引用。因此,通过使用数组扩展该类,该类的每个实例都将有一个events
等于相同的引用数组
要想避开这一点,你可以这样做
var Test = Class.extend({
events: null,
init: function() {
this.events = [];
this.events.push(1);
alert(this.events.length);
},
say: function(words) {
}
});
这样,每次初始化一个类时,都会为事件指定一个新数组(即引用)。我知道这不优雅,但应该有用