我正在用 javascript 编写一些对象(我猜是类)。 B 类继承自 A 类。A 类有一个名为 isValid 的方法,B 类重写该方法。我正在使用 YUI 扩展函数让 B 类扩展 A 类。
A = function(){
}
A.prototype = {
isValid:function(){
/* Some logic */
return booleanValue;
}
}
B = function(){
}
YAHOO.lang.extend(B, A,{
isValid:function(){
// call class A's valid function
// some more logic for class B.
return booleanValue;
}
});
我想要做的是在 B 类的 isValid 函数中调用 A 类的 isValid 函数。问题是,我可以从 B 类的 isValid 方法访问 A 类的 isValid 方法吗?我知道您可以使用以下行从 B 类的构造函数内部访问 A 类的构造函数
this.constructor.superclass.constructor.call(this,someParam);
方法是否可能有类似的东西?如果不是,这样做的良好做法是什么?目前我正在制作一个在父类(super class)的 isValid 方法中调用的辅助方法
A.prototype = {
a_isValid:function(){
// class A's is valid logic
return booelanValue;
},
isValid:function() {return this.a_isValid();}
}
然后我可以从类 B 调用 a_isValid 函数。这对我有用,但如果可能,我更愿意直接调用父类(super class)的 isValid 函数。
最佳答案
来自 YUI 文档:
YAHOO.lang.extend(YAHOO.test.Class2, YAHOO.test.Class1);
YAHOO.test.Class2.prototype.testMethod = function(info) {
// chain the method
YAHOO.test.Class2.superclass.testMethod.call(this, info);
alert("Class2: " + info);
};
它不适合你吗?第 4 行应该调用 Class1(父类(super class))的 testMethod。
关于javascript - javascript 中的父类(super class)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395529/