原型链实现继承

原型链

原型链示意图

image.png

使用原型链实现继承

function People() {
  this.sayhi= function() {
    console.log(this.name+this.age);    
  }
}
function Teacher(name,age) {
  this.name=name;
  this.age = age;
}
Teacher.prototype = new People();

var Ta= new Teacher("java",21);
Ta.sayhi();// java 21



这是怎么回事呢? 原型链在哪?

听我细细道来~

首先 Teacher 实例对象Ta是没有sayhi 这个方法的,在代码执行时,首先会在Teacher 实例对内部寻找这个方法,如果没有找到,会从实例对象的_proto _属性中寻找,这个属性就是Teacher 函数对象的prototype 指向的对象,即声明的People 实例对象。

在这个people 对象中找到了sayhi()方法,将此返回,如果没有找到,于是找proto属性,prototype 指向的对象。这样就形成一套完整的原型链。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容