js 原型链分析

原型链

前景介绍

在 js 中原型链主要是为了实现面向对象语言中继承的特性。

对于前端从业者来说,原型链确实是非常重要,具有划分性的知识,掌握好原型链的问题能让你更好的理解 js 的原型继承机制。

原型链图示

原型链的学习从一张图开始可能更好理解,也应该在学习后能够自己画出来。

这张图可以说是根据几个主要的特点来画出来的:

  1. 任意对象都有自己的原型对象,在 js 中万物皆对象,因此函数也是对象。也就是 __proto__ 属性。
  2. 只有函数有 prototype 属性。
  3. __proto__ 链的尽头是 Object.prototype --> 这个对象的 __proto__属性是 null
  4. 原型链就是顺着 __proto__ 属性向上寻找的路径。主要是用于继承。
  5. 关于上层的 FunctionObject 这两个都是构造函数,互相为对方的实例,JS 引擎在初始化时硬编码实现的,不是靠代码递归创建的。
相关推荐
洛_尘10 分钟前
JAVA第十一学:认识异常
java·开发语言
ohyeah22 分钟前
用原生 JS 手写一个“就地编辑”组件:EditInPlace 的 OOP 实践
前端·javascript
毕设源码-邱学长28 分钟前
【开题答辩全过程】以 基于JavaScript的图书销售网站为例,包含答辩的问题和答案
开发语言·javascript·ecmascript
重铸码农荣光31 分钟前
深入理解 JavaScript 中的 this:一场关于作用域、调用方式与设计哲学的思辨
前端·javascript
珑墨37 分钟前
【包管理器】pnpm、npm、cnpm、yarn 深度对比
前端·javascript·npm·node.js
老王熬夜敲代码44 分钟前
泛型编程的差异抽象思想
开发语言·c++·笔记
草字44 分钟前
uniapp 滚动到表单的某个位置,表单验证失败时。
前端·javascript·uni-app
CXH7281 小时前
架构师的登山之路|第十二站:服务网格 Istio——未来的标配,还是复杂过头?
前端·javascript·istio
zqy02271 小时前
python安装与环境配置
开发语言·python