[转] JS中简单的继承与多态

这里讲了一个最最最简单的JS中基于原型链的继承和多态。

先看一下以下这段代码的实现(A是“父类”,B是“子类”):

var A = function(){
  this.value = 'a';
  this.showValue = function(){
    console.log(this.value);
  }
}

var a = new A();
a.showValue();

var B = function(){
  this.value = 'b';
};

B.prototype = new A();

var b = new B();
b.showValue();

输出结果为:

"a"
"b"
  • 1
  • 2
  • 1
  • 2

结果看来实现了一个函数,不同对象的执行,出现不同的结果。

B.prototype = new A(); 这句将A“类”的构造方法,赋值给了B的构造原型,使B能够继承于A。

b.showValue()过程中,先在b中寻找showValue,无果。在b的原型:B,中寻找showValue,而B的prototype已经被A的构造方法赋值,因此再向上一层,在A中找到showValue。因此执行。

原文地址:https://www.cnblogs.com/chris-oil/p/6140237.html