如何调用从子父类的方法(How to call parent method from child)

2019-10-21 14:28发布

我得到当我试图调用pranet方法这个错误: Uncaught TypeError: Cannot read property 'call' of undefined

http://jsfiddle.net/5o7we3bd/

function Parent() {
   this.parentFunction = function(){
      console.log('parentFunction');
   }
}
Parent.prototype.constructor = Parent;

function Child() {
   Parent.call(this);
   this.parentFunction = function() {
      Parent.prototype.parentFunction.call(this);
      console.log('parentFunction from child');
   }
}
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;

var child = new Child();
child.parentFunction();

Answer 1:

你不能把一个“parentFunction”上的“家长”的原型。 你的“父母”构造增加了一个“parentFunction”属性的实例 ,但不会是作为原型的功能可见。

在一个构造函数, this是指的被创建为通过调用的结果,新的实例new 。 添加方法的实例是一个很好的事情,但它不是在所有相同的添加方法构造原型。

如果你想访问由“父”构造补充说,“parentFunction”,你可以节省参考:

function Child() {
   Parent.call(this);
   var oldParentFunction = this.parentFunction;
   this.parentFunction = function() {
      oldParentFunction.call(this);
      console.log('parentFunction from child');
   }
}


文章来源: How to call parent method from child