javascript - javascript 中的父类(super class)方法

标签 javascript yui yui2

我正在用 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/

相关文章:

javascript - 从 yui 数据表获取数据

javascript - Google Sheets,以所有者身份运行函数

javascript - 无法从表单访问这两个文件

javascript - YUI 选项卡 View : "add tab" button stuck on the left side when all tabs are closed

javascript - 是否有一个YUI模块可以帮助我实现通知,例如Stack Exchange网站在屏幕顶部使用的通知?

javascript - YUI2 对话框没有正确隐藏对话框标记

javascript - 检测到 localStorage 中的任何变化?

javascript - Asp Core +Angular 4 +VS 2017,从 webpack 模板转移到其他东西

javascript - 集群环境中的颗粒缩小和合并

javascript - JS 和 YUI 中的这些结构是什么?