美文网首页前端笔记
原型与原型链

原型与原型链

作者: 好奇男孩 | 来源:发表于2018-05-10 20:05 被阅读8次

    prototype(原型)

    function Person(nick, age){
        this.nick = nick;
        this.age = age;
    }
    Person.prototype.sayName = function(){
        console.log(this.nick);
    }
    
    var p1 = new Person();
    p1.sayName();
    
    • 我们通过函数定义了类Person,类(函数)自动获得属性prototype

    • 每个类的实例都会有一个内部属性proto,指向类的prototype属性

    image

    通过图示我们可以看出一些端倪,实例可以通过__prop__访问到其类型的prototype属性,这就意味

    着类的prototype对象可以作为一个公共容器,供所有实例访问。

    原型链

    我们刚才的问题可以通过这个手段解决

    • 所有实例都会通过原型链引用到类型的prototype

    • prototype相当于特定类型所有实例都可以访问到的一个公共容器

    • 重复的东西移动到公共容器里放一份就可以了

    范例

    function People (name){
      this.name = name;
    }
    
    People.prototype.walk = function(){
      console.log(this.name + ' is walking');  
    }
    
    var p1 = new People('饥人谷');
    var p2 = new People('前端');
    
    

    这时候我们对应的关系是这样的

    006JM2pKgy1fqn2a9d2mfj30u0140ac1.jpg

    深入了解原型链

    3.jpg

    相关文章

      网友评论

        本文标题:原型与原型链

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