花了几天时间学习了JS中继承的有关知识,总算是有了一个清晰的脉络。下面会附上实例一步步讲解JS中的继承。
一 原型链
JS中很重要的一个概念,并且也是各种面试考试的高频问题。在前面原型的文章中,已经仔细介绍了JS中原型的概念,如果还不太了解,请移步JS中使用原型模式创建对象中进行阅读学习。
原型链是实现继承的主要方法。每个构造函数都有一个原型对象(prototype),原型对象都包含一个指向构造函数的指针(constructor),而实例都包含一个指向原型对象的内部指针(__proto__)。假如我们让原型对象A等于另一个类型B的实例,那么原型对象A就包含一个指向另一个类型B的原型对象的指针,以此类推,B的原型对象又是C类型的实例,上面的关系依然成立,如此层层递进,就构成了实例与原型的链条,这就是原型链的概念。
function A(){
this.name = "A";
}
A.prototype.getName = function(){
console.log(this.name);
}
function B(){
this.name = "B";
}
B.prototype = new A(); //B的原型对象等于A的实例
B.prototype.getName = function(){
console.log(this.name);
}
function C(){
this.name