构造函数,对象原型,实例对象三者之间的关系

1.构造函数,原型对象,实例对象三者之间的关系

    每建立一个函数,该函数都会自动带有一个prototype属性。该属性是一个指针,指向一个对象,该对象称之为原型对象(后期咱们能够使用这个原型对象帮助咱们在js中实现继承).
    原型对象上默认有一个属性constructor,该属性也是一个指针,指向其相关联的构造函数。
    经过调用构造函数产生的实例对象,都拥有一个内部属性,指向了原型对象。其实例对象可以访问原型对象上的全部属性和方法。
总结:三者的关系是,每一个构造函数都有一个原型对象,原型对象上包含着一个指向构造函数的指针,而实例都包含着一个指向原型对象的内部指针。通俗的说,实例能够经过内部指针访问到原型对象,原型对象能够经过constructor找到构造函数。javascript

function People(){
    this.type='人'
}
People.prototype.showType=function(){
    alert(this.type);
}

var person=new People();
//调用原型对象上面的方法
person.showType();//最后结果弹框弹出人

以上代码定义了一个构造函数People(),People.prototype指向原型对象,其自带属性construtor又指回了People,即People.prototype.constructor==People.实例对象person因为其内部指针指向了原型对象,因此能够访问原型对象上的showType方法。java

记住People.prototype只是一个指针,指向的是原型对象,而非构造函数,利用这个指针能够帮助咱们实现js继承函数

相关文章
相关标签/搜索