学科分类
目录
JavaScript网页编程

利用原型对象继承父类方法

若要实现子类继承父类的方法,可以将父类的实例对象作为子类的原型对象来使用,然后将这个新的原型对象的constructor属性指向子类,示例代码如下。

 1  function Father() {}

 2  Father.prototype.money = function() {

 3   console.log(100000);

 4  };

 5  function Son() {}

 6  Son.prototype = new Father();     // 将父类的实例对象作为子类的原型对象

 7  Son.prototype.constructor = Son;   // 将原型对象的constructor属性指向子类

 8  new Son().money();    // 调用父类money()方法,输出结果:100000

 9  Son.prototype.exam = function() {}; // 为子类增加exam()方法

 10 console.log(Father.prototype.exam); // 子类不影响父类,输出结果:undefined

为了让读者更好地理解,下面我们通过图1演示上述代码在原型链中的结构。

img

图1 原型链示意图

在图1中,Son实例对象的原型对象是Father实例对象,Father实例对象的原型对象是Father原型对象。当调用Son实例对象的某个方法时,会先查找Son实例对象有无该方法,如果没有,再到Son原型对象中查找,如果仍然没有,再到Father原型对象中查找,一直沿着原型链找到最后。由于Father原型对象中有一个money()方法,所以通过Son实例对象就继承了money()方法。

点击此处
隐藏目录