javascript原型链

来源:互联网 发布:ipad pro 10.5 知乎 编辑:程序博客网 时间:2024/05/17 03:51

什么是原型链呢?每个构造函数都会有一个原型对象,原型对象里面有constructor属性是一个指向构造函数的指针,每个实例都包含一个指向原型对象的内部指针([[prototype]])。如果让一个函数的原型对象等于另一个类型的实例,此时原型对象将包含一个指向另一个原型的指针[[prototype]],如果还有另外的原型对象等于该类型的实例,则另外的原型对象将包含一个指向该原型对象的内部指针,如果还有其他原型对象等于更前面的实例,层层递进,就形成了以原型对象的[[prototype]]指向另一原型对象的指针为连接线的链接,这就是原型链。

原型链是实现继承的主要方法。

上述描述比较抽象,以下为代码示例:

function Animal(name){    this.name = name}Animal.prototype.eat = function(){    console.log(this.name + " can eat.")}function Dog(name){    this.name = name}Dog.prototype = new Animal("Dog")Dog.prototype.housekeeping = function(){    console.log(this.name + " can prevent theft.")}

这里写图片描述