美文网首页
原型链实现继承

原型链实现继承

作者: 小黑哥啊哈哈 | 来源:发表于2019-03-27 22:13 被阅读0次

    原型链

    原型链示意图

    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 指向的对象。这样就形成一套完整的原型链。

    相关文章

      网友评论

          本文标题:原型链实现继承

          本文链接:https://www.haomeiwen.com/subject/qldxbqtx.html