ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

记住这两点,彻底终结原型链吧

2019-05-07 12:52:56  阅读:219  来源: 互联网

标签:__ Function proto 终结 Object 原型 这两点 prototype 构造函数


文章极短,没有图!

1.概念

__proto__

  • 对象特有
  • 指向上层(创建自己的那个构造函数)的pototype
  • 因此对象可以从 prototype 中继承属性和方法

prototype

  • 函数特有
  • 用于存储要共享的属性和方法

constructor

  • 函数特有,定义在prototype里面
  • 通过new创建实例时,该实例便继承了prototype的属性和方法

2. 既是函数也是对象

Object:既是对象,也是构造函数

  • 作为对象:Object.__proto__ = Function.prototype

  • 作为函数:Object.prototype是原型链的顶端,Object.prototype.__proto__ = null

Function:既是对象,也是构造函数

  • 作为对象:Function.__proto__ = Function.prototype

  • 作为函数:Function.prototype用于共享,而Function.prototype__proto__继承自Object.prototype

Array(Date...):既是对象,也是构造函数

  • 作为对象:Array.__proto__ = Function.prototype
  • 作为函数:Array.prototype用于共享,Array.prototype.__proto__继承自Object.prototype

普通对象Person:既是对象,也是构造函数

  • 作为对象:Person.__proto__ = Function.prototype
  • 作为函数:Person.prototype用于共享,Person.prototype.__proto__继承自Object.prototype

总结

  1. 原型链顶端是Object.prototype

  2. 构造函数创建的对象(Object、Function、Array、普通对象等)都是Function的实例,它们的__proto__均指向Function.prototype

  3. 除了Object,所有对象(或叫构造函数)的prototype,均继承自Object.prototype

希望这篇简短的文章可以帮助你彻底理解原型链,如果觉得文章有用,点赞鼓励一下吧~



转载:https://juejin.im/post/5ccf800cf265da03b0517112

标签:__,Function,proto,终结,Object,原型,这两点,prototype,构造函数
来源: https://blog.csdn.net/bbsyi/article/details/89918620

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有