[code="java"]
var Person = function (config) {
this.name = 'foo';
this.toString = function () {
return 'form Person';
}
}
var Student = function (config) {
Ext.apply(this, config);
Student.superclass.constructor.call(this, {
name: config.name
});
}
Ext.extend(Student, Person, {
toString: function () {
return 'form Student';
}
});
var s = new Student({
name: 'bar'
});
alert(s.name); // 为什么name没有被覆盖 如何才能此值
alert(s.toString()); // 为什么toString没有被覆盖 如何才能此方法
[/code]
我认为Ext.extend 应该可以做到 属性和方法的继承 和 属性和方法的 覆盖 请教之 谢谢!
[b]问题补充:[/b]
首先感谢 yourgame
我想你贴的这段代码自己有没有运行过
我运行你的代码 没有任何改变 下面贴出 直接在firebug运行 麻烦你了 谢谢
[code="java"]
var Person = function (config) {
this.name = 'foo';
this.toString = function () {
return 'form Person';
}
}
var Student = Ext.extend(Person, {
[color=red] constructor: function (config) {
Student.superclass.constructor.apply(this, arguments);
},
toString: function () {
return 'form Student';
}[/color]
});
var s = new Student({
name: 'bar'
});
alert(s.name);
alert(s.toString());
[/code]
[b]问题补充:[/b]
首先感谢 atian25
如能贴出完整可执行代码 不胜感激
[b]问题补充:[/b]
to atian25
我运行 代码可以
但是
我删除子类的toString() 然后运行 发现没有继承toString()
[b]问题补充:[/b]
感谢 atian25 抽出时间关注问题 并解决我的问题
我之前没有注意到 constructor 谢谢提醒