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

相关推荐
被子你放开我1 分钟前
CRMEB PHP多商户升级4.0太麻烦了
开发语言·php
阿里嘎多学长1 分钟前
2026-06-01 GitHub 热点项目精选
开发语言·程序员·github·代码托管
山河已无恙13 分钟前
BPF-eBPF 开发路线二:libbpf、CO-RE 与 libbpf-bootstrap认知
javascript·bootstrap·php
醒醒该学习了!16 分钟前
Anaconda安装教程+第一个python例子
开发语言·python
ZengLiangYi1 小时前
React Query + REST API 最佳实践
javascript·后端·react.js
ZengLiangYi1 小时前
Fastify 加 Electron:把 Web 服务嵌进桌面应用
前端·javascript·后端
在繁华处2 小时前
Java从零到熟练(九):并发编程基础
java·开发语言
木头程序员2 小时前
SSM框架学习笔记
java·开发语言·mysql·spring·maven
一起逃去看海吧2 小时前
dify-03
java·linux·开发语言