js 原型链分析

原型链

前景介绍

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

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

原型链图示

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

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

  1. 任意对象都有自己的原型对象,在 js 中万物皆对象,因此函数也是对象。也就是 __proto__ 属性。
  2. 只有函数有 prototype 属性。
  3. __proto__ 链的尽头是 Object.prototype --> 这个对象的 __proto__属性是 null
  4. 原型链就是顺着 __proto__ 属性向上寻找的路径。主要是用于继承。
  5. 关于上层的 FunctionObject 这两个都是构造函数,互相为对方的实例,JS 引擎在初始化时硬编码实现的,不是靠代码递归创建的。
相关推荐
ping某1 小时前
专栏-null 和 undefined 到底是什么?
前端·javascript·后端
swipe4 小时前
从 0 到 1 理解 React 虚拟列表:定高、不定高与 Canvas 版本完整拆解
前端·javascript·面试
铁皮饭盒5 小时前
Bun执行python代码
前端·javascript·后端
zzzzzz3107 小时前
当甲方说'logo放大的同时再缩小一点'时,我用 AI 把这个需求做出来了
javascript·css·程序员
Hilaku7 小时前
Node.js 还能再战十年?给你一个不换引擎的理由
前端·javascript·程序员
weedsfly7 小时前
前端必知必会:从 IIFE 到 ESM,模块化到底在解决什么?
前端·javascript
渣波7 小时前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
槑有老呆7 小时前
每次跟大模型聊天,都是一次「失忆」的 HTTP 请求
javascript
sarasuki7 小时前
彻底搞懂JS闭包:从作用域链、形成条件到优缺点
javascript
糖拌西瓜皮7 小时前
TypeScript 进阶:泛型、条件类型、类型守卫与装饰器
javascript·node.js