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

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

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

  1. 创建空对象 :首先,new操作符会创建一个空对象,这个对象的隐式原型__proto__属性会被设置为构造函数的显示原型prototype属性。
  2. 设置原型链 :将新创建的空对象的隐式原型__proto__属性设置为构造函数的原型prototype,这样新创建的对象就能够访问构造函数的原型上定义的方法和属性。
  3. 调用构造函数 :接着,会调用构造函数,并将this指向新创建的空对象。在构造函数中,可以给这个对象添加属性和方法。
  4. 执行构造函数:在构造函数中,会根据定义的参数列表执行一系列操作,例如初始化实例变量、执行其他方法等。
  5. 返回对象引用:构造函数执行完毕后,如果构造函数有返回值,并且返回值是对象类型,那么就返回构造函数的返回值;如果构造函数没有返回值或者返回值不是对象类型,那么就返回新创建的空对象。
相关推荐
JasmineX-11 小时前
数据结构——顺序表(c语言笔记)
c语言·开发语言·数据结构·笔记
xkroy1 小时前
ajax
前端·javascript·ajax
Yvonne爱编码1 小时前
AJAX入门-URL、参数查询、案例查询
前端·javascript·ajax
java搬砖工-苤-初心不变2 小时前
OpenResty 配合 Lua 脚本的使用
开发语言·lua·openresty
IT灰猫2 小时前
C++轻量级配置管理器升级版
开发语言·c++·设计模式·配置管理·ini解析
Swift社区2 小时前
如何解决 Vue2 前端项目为何无法访问本地资源(chunk.js 加载一直 pending/转圈)
开发语言·前端·javascript
大飞pkz2 小时前
【设计模式】题目小练2
开发语言·设计模式·c#·题目小练
啟明起鸣2 小时前
【网络编程】从与 TCP 服务器的对比中探讨出 UDP 协议服务器的并发方案(C 语言)
服务器·c语言·开发语言·网络·tcp/ip·udp
清风细雨_林木木2 小时前
Vue加载资源‘如图片’的“直接引入“方式和“request()“的区别
前端·javascript·vue.js
007php0072 小时前
Redis高级面试题解析:深入理解Redis的工作原理与优化策略
java·开发语言·redis·nginx·缓存·面试·职场和发展