zoukankan      html  css  js  c++  java
  • js 最容易理解的原型链 prototype和_proto_

    1. 所有对象都有_proto_属性,它指向构造该对象的函数的原型对象 比如person._proto_ === Person.prototype,这也保证了js所谓的原型继承机制,实例可以获取原型对象中定义的属性和方法。
    2. 函数对象有prototype 属性 非函数对象没有
    3. 非函数对象 _proto_属性指向构造函数的prototype属性,构造函数也有_proto_ 指向Object.prototype , Object的_proto_指向null
    4. 函数对象也有_proto_,指向Function的prototype, Fuction的_proto_指向它自身
    5. prototype里有两个属性constructor和_proto_ , constructor指向函数自己,_proto_指向构造函数的prototype, obj1._proto_ === Object.prototype
    6. Js 声明的方法其实就是一个类,他的构造函数就是自己。其中有一个属性prototype,里面可以存储方法和属性,这些方法和属性会被所有的实例继承,所有的实例都有一个_proto_指针指向构造函数的prototype属性
    7. js里万物皆对象,Function也是对象 Function.prototype也是对象 Function.prototype._proto_ === Object.prototype
    8. 原型对象是构造函数的一个属性,是所有实例对象共享属性和方法的原型,原型对象有个隐式的constructor函数 指向了构造函数本身
    9. 简单的总结: 构造函数如Person() 有个prototype属性也叫原型对象, 这个对象存储的有方法和属性可供实例继承, person = new Person(),person有个_proto_指向的就是构造函数的prototype这个属性,另外在这个prototype原型对象里有个隐式的属性constructor,它指向了构造函数本身
    10. 下面是个简易图 帮助理解   
  • 相关阅读:
    bzoj3675 [Apio2014]序列分割
    bzoj3206 [Apio2013]道路费用
    bzoj3205 [Apio2013]机器人
    bzoj4241 历史研究
    bzoj2821 作诗(Poetize)
    bzoj2724 [Violet 6]蒲公英
    bzoj2811 [Apio2012]Guard
    bzoj2809 [Apio2012]dispatching
    PHP 文字,图片水印,缩略图,裁切成小图(大小变小)
    PHP文件下载方式
  • 原文地址:https://www.cnblogs.com/ChrisZhou666/p/13048770.html
Copyright © 2011-2022 走看看