zoukankan      html  css  js  c++  java
  • 原型链进阶

    原型链进阶
    • 所有的对象都是Function的一个实例,包括Object
      • Object.__proto__ === Function.protoype
    • 每个实例后的对象的__proto__属性都指向构造函数的prototype属性
    • 每个实例后的对象的constructor属性指向构造函数
    • Object 与 Function的relation
      • Object.__proto__ === Function.prototype
      • Object.prototype === Function.prototype.__proto__
      • Object.prototype.__proto__ === null
    • Smmarize
      • 通过代码Function.__proto__ === Function.prototype, 可以得出结论Fucntion是由他的原型创建出来
      • 通过代码Function.prototype === Object.__proto__可以看出Object是由Function创建出来。那么Function.prototype是由谁创建的呢? 答案是:Function.prototype.__proto__ === Object.prototype由此代码可以看出Function的原型是由Object创建出来的,那么我们此时又想知道Object.prototype是由谁创建出来的呢? 答案是:Object.prototype.__proto__ === null,由代码可以看出 ,它是自己蹦出来的。
      • 如果想查看一个对象是由谁创建出来的? 可以通过此对象的__proto__属性来查看。
    1.function Foo(){}
    2.var foo = new Foo();
    3.
    • Smmarize1

      • 实例对象foo是通过构造函数Foo创建的,所以实例对象的foo.__proto__指向构造按函数Foo.prototype;又因为Foo.__proto__指向Function.prototype,所以Foo是通过Function创建出来的;那么问题来了Function是通过谁创建出来的呢? 答案是: Function的属性__proto__指向Function.prototype;继续挖Function.prototype是通过谁创建出来的呢? 结果是:Function.prototype.__proto__指向Object.prototype,所以说呢: Function.prototype是通过Object.prototype创建出来的,那么Object.prototype.__proto__又指向谁呢,答案是null, 它是从石头里蹦出来的.
    • 小弟水平有限,若有什么不对之处,还请留言指出哈

     
  • 相关阅读:
    泰国行记三:PP岛三天的休闲时光
    泰国行记二:普吉印象
    177. Nth Highest Salary
    176. Second Highest Salary
    175. Combine Two Tables
    Regular Expression Matching
    斐波那契数列
    用两个栈实现队列
    二叉树的下一个节点
    重建二叉树
  • 原文地址:https://www.cnblogs.com/songyaqi/p/5194100.html
Copyright © 2011-2022 走看看