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之类的东西),
现在想在一个方法里, 取到这个方法的所在类的实际父类, 而且想尽量避免直接写出父类的名称, 有什么方法能做到吗?
相关分类