JavaScript中的原型继承…我可以称之为;超级";相等的

JavaScript中的原型继承…我可以称之为;超级";相等的,javascript,inheritance,prototype,Javascript,Inheritance,Prototype,我正在使用原型继承用javascript构建一个面向对象的库。与Java和.NET类似,我的所有对象/原型都将继承“对象”对象/原型。我想知道是否可以从派生函数调用超级对象/原型函数 考虑以下代码exmaple: function Object() { this.DoAction = function() { }; }; function CustomObject() { this.DoAction = function() { super.DoActi

我正在使用原型继承用javascript构建一个面向对象的库。与Java和.NET类似,我的所有对象/原型都将继承“对象”对象/原型。我想知道是否可以从派生函数调用超级对象/原型函数

考虑以下代码exmaple:

function Object() {
    this.DoAction = function() {
    };
};

function CustomObject() {
    this.DoAction = function() {
        super.DoAction();    //How do I do this in JavaScript?
    };
};

JavaScript没有与
super
的直接等价物

一种解决方法是在覆盖原型之前在原型上保存该方法,如:

function CustomObject() {
    this._super_DoAction = this.DoAction;
    this.DoAction = function() {
        this._super_DoAction(); 
    };
};
如果您能够使用ES5功能,则可以使用
Object.getPrototypeOf
从原型中获取方法,然后
apply
使用当前对象执行该方法,如
this

function CustomObject(){
    this.DoAction=function() {
        Object.getPrototypeOf(this).DoAction.apply(this, []);
    };
}

:)我的首选项
对象。创建
:不太可能。Super在原型系统中不起作用。