使用new 关键字调用函数,创建对象的过程中做了什么

使用new 关键字调用函数,创建对象的过程中做了什么

使用 new关键字创建对象的过程大致可以分为以下几个步骤:

  1. 创建空对象 :首先,new操作符会创建一个空对象,这个对象的隐式原型__proto__属性会被设置为构造函数的显示原型prototype属性。
  2. 设置原型链 :将新创建的空对象的隐式原型__proto__属性设置为构造函数的原型prototype,这样新创建的对象就能够访问构造函数的原型上定义的方法和属性。
  3. 调用构造函数 :接着,会调用构造函数,并将this指向新创建的空对象。在构造函数中,可以给这个对象添加属性和方法。
  4. 执行构造函数:在构造函数中,会根据定义的参数列表执行一系列操作,例如初始化实例变量、执行其他方法等。
  5. 返回对象引用:构造函数执行完毕后,如果构造函数有返回值,并且返回值是对象类型,那么就返回构造函数的返回值;如果构造函数没有返回值或者返回值不是对象类型,那么就返回新创建的空对象。
相关推荐
余生H3 分钟前
前端技术新闻(WTN-1):React.js & Next.js 爆出 CVSS 10.0 级严重漏洞,历史风险回顾与代码级深度分析
前端·javascript·react.js
轻描淡写6066 分钟前
二进制存储数据
java·开发语言·算法
1024肥宅7 分钟前
JavaScript 原生方法实现:数学与数字处理全解析
前端·javascript·ecmascript 6
烟袅12 分钟前
深入理解 JavaScript 内存机制与闭包原理
前端·javascript
laocooon52385788617 分钟前
C++ 设计模式概述及常用模式
开发语言·c++·设计模式
烟袅21 分钟前
JavaScript 内存三空间协同机制:代码空间、栈空间与堆空间如何联合运行
前端·javascript
黑客思维者22 分钟前
Python自动化测试Pytest/Unittest深度解析与接口测试落地实践
开发语言·python·pytest·unittest
muyouking1123 分钟前
Zig 模块系统详解:从文件到命名空间,与 Rust 的模块哲学对比
开发语言·后端·rust
wbs_scy24 分钟前
C++ :Stack 与 Queue 完全使用指南(基础操作 + 经典场景 + 实战习题)
开发语言·c++
询问QQ:1808095126 分钟前
永磁同步电机参数辨识那些事儿
原型模式