JavaScript(三)---原型与原型链

原型

js分为普通对象和函数对象,typeof检测时为object或者function

  • 每个对象都有_proto_属性
  • 只有函数对象才有prototype属性

_proto_和prototype是啥?

  • 属性_proto_是一个对象,它有两个属性,constructor和 _proto_;
  • 原型对象prototype有一个默认的constructor属性,用于记录实例是由哪个构造函数创建;

原型链

每个对象都会隐式的引用_proto_这个对象,而每个对象的_proto_对象也有_proto_属性,因此层层嵌套,直到Object.prototype.ptoro==null

原型链.png

  • 构造函数的_proto_属性和构造函数prototype的_proto_属性是指向不同对象的,前者是Function的实例,因此指向Function.prototype, 后者是普通对象,若没有继承自其它类直接指向Object.prototype。
  • Function和Object构造函数的_proto_属性都是指向Function.prototype,Function的原型的_proto_属性指向Object.prototype。

总结,构造函数的proto原型链上Function.prototype

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。