美文网首页
JavaScript原型和原型链

JavaScript原型和原型链

作者: 前端咸蛋黄 | 来源:发表于2019-03-07 17:36 被阅读0次
    1. 当 new 一个函数的时候会创建一个对象,被创建对象.__proto__=== 函数.prototype
    var object = {}
    object.__proto__ ===  Object.prototype
    
    var fn = function(){}
    fn.__proto__ === Function.prototype
    
    var array = []
    array.__proto__ === Array.prototype
    
    true.__proto__ === Boolean.prototype
    
    1. 一切函数都是由 Function 这个函数创建的,被创建的函数.__proto__ === Function.prototype
    Function.__proto__ === Function.prototype
    Array.__proto__ === Function.prototype
    Object.__proto__ === Function.prototype
    
    1. 一切函数的原型对象都是由 Object 这个函数创建的,所以一切函数.prototype.__proto__ === Object.prototype
    Function.prototype.__proto__ === Object.prototype
    Array.prototype.__proto__ === Object.prototype
    
    1. 特殊情况
    //因为
    arr.__proto__ = Function.prototype
    array.__proto__.__proto__ === Object.prototype
    
    //所以
    Function.prototype.__proto__ === Object.prototype
    

    总结,JavaScript 只有一种结构:对象。每个实例对象(object )都有一个私有属性(称之为__proto__)指向它的原型对象(prototype)。该原型对象也有一个自己的原型对象(__proto__) ,层层向上直到一个对象的原型对象为 null。这叫做原型链
    null 没有原型,并作为这个原型链中的最后一个环节。

    相关文章

      网友评论

          本文标题:JavaScript原型和原型链

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