博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记住这两点,彻底终结原型链吧
阅读量:5980 次
发布时间:2019-06-20

本文共 940 字,大约阅读时间需要 3 分钟。

文章极短,没有图!

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

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

转载地址:http://xrlox.baihongyu.com/

你可能感兴趣的文章
MySQL表级锁和行级锁
查看>>
基于Metronic的Bootstrap开发框架经验总结(11)--页面菜单的几种呈现方式
查看>>
2017第18周三
查看>>
oracle-pl/sql之一
查看>>
css/css3实现未知宽高元素的垂直居中和水平居中
查看>>
性能优化技巧知识梳理(1) 布局优化
查看>>
Kotlin 知识梳理(7) Kotlin 的类型系统
查看>>
【刷算法】整数中1出现的次数(从1到n整数中1出现的次数)
查看>>
软件测试常见面试题及答案
查看>>
JavaScript深入系列15篇正式完结!
查看>>
HotSpot JVM 内存管理
查看>>
Kafka 学习笔记
查看>>
Swift 中的运行时小技巧
查看>>
第三十三章:修改SpringBoot启动Banner
查看>>
《Functional Programming in 40 minutes》笔记
查看>>
11个简单的Java性能调优技巧
查看>>
谈谈TCP协议的三次握手和四次挥手
查看>>
idea中live-template的使用
查看>>
理解区块链 这一篇就够
查看>>
Mac配置MySQL以及Squel Pro
查看>>