我希望在子类函数中调用超类函数来覆盖超类函数。例如:
var a = function(x) {
this.val = x || 0;
};
a.prototype.print = function() {
console.log("Class A");
};
var b = function(x, y) {
this.y = y || 0;
a.call(this, x);
};
b.prototype = Object.create(a.prototype);
b.prototype.constructor = b;
b.prototype.print = function() {
console.log("b inherits from ");
// call to superclass print function (a.print)
};
当子类已经覆盖超类函数时,如何从子类调用超类print函数?
答案 0 :(得分:3)
您可以使用superclass.prototype.method.call(argThis, parameters)
。在没有参数的情况下,a.prototype.print.call(this);
所以,你的代码将是
var a = function(x) {
this.val = x || 0;
};
a.prototype.print = function() {
console.log("Class A");
};
var b = function(x, y) {
this.y = y || 0;
a.call(this, x);
};
b.prototype = Object.create(a.prototype);
b.prototype.constructor = b;
b.prototype.print = function() {
console.log("b inherits from ");
a.prototype.print.call(this);
};