js new 原理

mdn new

new 调用函数时,该函数将被用作构造函数

类只能用 new 运算符实例化

不使用 new 调用一个类将抛出 TypeError。

过程

new Foo(...) 执行时:

  1. 创建一个空的简单 JavaScript 对象。

    为方便起见,我们称之为 newInstance

  2. 如果构造函数的 prototype 属性是一个对象,则将 newInstance[[Prototype]] 指向构造函数的这个属性;

    否则 newInstance 将保持为一个普通对象,其 [[Prototype]]Object.prototype

    备注:通过构造函数创建的所有实例都可以访问添加到构造函数 prototype 属性中的属性/对象。

  3. 使用给定参数执行构造函数,并将 newInstance 绑定为 this 的上下文,

    在构造函数中的所有 this 引用都指向 newInstance。

  4. 如果构造函数返回 引用类型,则该返回值作为 new 表达式的结果。

    否则返回构建好的 newInstance

相关推荐
geovindu几秒前
python: Breadth First Search Algorithm and Depth First Search Algorithm
开发语言·后端·python·算法·搜索算法
Wect31 分钟前
TypeScript 完全指南
前端·javascript·typescript
张元清36 分钟前
React useDeepCompareEffect:修复 useEffect 的对象依赖问题(2026)
javascript·react.js
phltxy1 小时前
LangChain_v1_Agent快速开发和更新说明
前端·javascript·langchain
Cobyte1 小时前
通过 Vite 运行手写的模板编译器
前端·javascript·vue.js
小大宇1 小时前
python sqlalchemy 案例
开发语言·python
用户298698530142 小时前
React 前端处理 Excel 工作表复制的技术实践
javascript·react.js·excel
光影少年2 小时前
RN原生交互 & 桥接
前端·javascript·react native·react.js·前端框架
用户526835677902 小时前
云原生运维实践:构建 Prometheus + 自定义 Webhook 的硬件声光告警闭环
javascript
GuWenyue2 小时前
踩坑无数!吃透useState 3个核心技巧,彻底解决状态旧值、性能卡顿问题
前端·javascript·react.js