在兼容ES5的前提下,有什么办法能在方法里匿名的取到父类吗?

var A = function () {};

A.prototype = { foo: function () { console.log('1'); } };


B = $extend(A, {

    foo: function () {

        A.prototype.foo.call(this);

        // 需要在这里拿到父类的foo, 但希望改成避免使用A的名称的方式

        // 例如类似arguments.callee.super的形式, 但是callee又被es5弃用了

        console.log('2');

    }

});


var C = $extend(B, {

    bar: function () {

        this.foo();

        // 之前试了B.prototype.foo = function () { this.constructor.super } 的方式取B的父类, 但发现这种情况会出问题

    }

});

如上, 写了一个类似$extend这样的函数来做继承(为了方便给其它人改, 没用babel之类的东西),
现在想在一个方法里, 取到这个方法的所在类的实际父类, 而且想尽量避免直接写出父类的名称, 有什么方法能做到吗?

慕虎7371278
浏览 474回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript