美文网首页
JavaScript 之 原型与原型链

JavaScript 之 原型与原型链

作者: _一九九一_ | 来源:发表于2019-11-07 10:46 被阅读0次

    prototype:

    • 每个函数都有一个 prototype 属性,
    • 每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性。

    __ proto __:

    • 每一个JavaScript对象(除了 null )都具有的一个属性,叫__ proto __,这个属性会指向该对象的原型

    constructor

    • 一个构造函数可以生成多个实例
    • 每个原型都有一个 constructor 属性指向关联的构造函数

    关系:

    function Person() {
    
    }
    
    var person = new Person();
    
    console.log(person.constructor === Person); // true
    console.log(Person.prototype.constructor === Person) // true
    console.log(person.constructor === Person.prototype.constructor)   // true
    console.log(person.__proto__ === Person.prototype) // true
    // 获得对象的原型
    console.log(Object.getPrototypeOf(person) === Person.prototype) // true
    console.log(Object.prototype.__proto__ === null) // true
    

    实例与原型:

    • 当读取实例的属性时,如果找不到,就会查找与对象关联的原型中的属性,如果还查不到,就去找原型的原型,一直找到最顶层为止。

    原型 原型链 构造函数 实例关系图

    关系图

    相关文章

      网友评论

          本文标题:JavaScript 之 原型与原型链

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