原型链

作者: zhangjingbibibi | 来源:发表于2018-05-09 20:28 被阅读0次
    • 原型链
    • 访问一个对象的属性时:
      • 先在自身属性中查找,找到返回
      • 如果没有,再沿着proto这条链向上查找,找到返回
      • 如果最终没找到,返回undefined
    • 别名:隐式原型链
    • 作用:查找对象的属性(方法)
    • 构造函数/原型/实体对象的关系(图解)
      var o1=new Object();
      var o2={};


      image.png
    • 构造函数/原型/实体对象的关系2(图解)
      function Foo(){}


      image.png
    // console.log(Object)
    //console.log(Object.prototype)
    console.log(Object.prototype.__proto__)    //输出null
      function Fn() {
        this.test1 = function () {
          console.log('test1()')
        }
      }
      console.log(Fn.prototype);
      Fn.prototype.test2 = function () {
        console.log('test2()')
      }
      var fn = new Fn()
      fn.test1()
      fn.test2()
      console.log(fn.toString())
      console.log(fn.test3)
      // fn.test3()
    
    
    原型链分析.png
     /*
     1. 函数的显示原型指向的对象默认是空Object实例对象(但Object不满足)
      */
     console.log(Fn.prototype instanceof Object) // true
     console.log(Object.prototype instanceof Object) // false
     console.log(Function.prototype instanceof Object) // true
     /*
     2. 所有函数都是Function的实例(包含Function)
     */
     console.log(Function.__proto__===Function.prototype)
     /*
     3. Object的原型对象是原型链尽头
      */
     console.log(Object.prototype.__proto__) // null
    

    相关文章

      网友评论

          本文标题:原型链

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