new 操作符具体干了什么呢?

简介: new 操作符具体干了什么呢?

样本一

new 共经过了 4 几个阶段

  • 1、创建一个空对象
  • 2、设置原型链
  • 3、让 Func 中的 this 指向 obj,并执行 Func 的函数体
  • 4、判断 Func 的返回值类型:

样本二

 
function Test(){}
const test = new Test()

1.创建一个新对象:

 
const obj = {}

2.设置新对象的 constructor 属性为构造函数的名称,设置新对象的__proto__属性指向构造函数的 prototype 对象

 
obj.constructor = Test
obj.__proto__ = Test.prototype

3.使用新对象调用函数,函数中的 this 被指向新实例对象

 
Test.call(obj)

4.将初始化完毕的新对象地址,保存到等号左边的变量中

相关文章
|
存储 大数据 数据库
电商数据分析-02-电商业务介绍及表结构
电商数据分析-02-电商业务介绍及表结构
|
存储 人工智能 自然语言处理
AI Agent与SaaS工具协同发展的未来:企业智能化的全新范式
AI Agent以自主性和智能化为核心,适合复杂任务的动态执行;而SaaS工具则注重服务的完整性和易用性,适合标准化业务需求。
913 14
AI Agent与SaaS工具协同发展的未来:企业智能化的全新范式
|
机器学习/深度学习 人工智能 自然语言处理
AigcPanel:开源的 AI 虚拟数字人系统,一键安装开箱即用,支持视频合成、声音合成和声音克隆
AigcPanel 是一款开源的 AI 虚拟数字人系统,支持视频合成、声音克隆等功能,适用于影视制作、虚拟主播、教育培训等多种场景。
1521 12
AigcPanel:开源的 AI 虚拟数字人系统,一键安装开箱即用,支持视频合成、声音合成和声音克隆
|
SQL 关系型数据库 MySQL
MySQL中如何查看所有数据库的名称?
【6月更文挑战第12天】MySQL中如何查看所有数据库的名称?
694 3
|
缓存 前端开发 Java
浅析JVM invokedynamic指令与Java Lambda语法
【8月更文挑战第27天】在Java的演进历程中,invokedynamic指令的引入和Lambda表达式的出现无疑是两大重要里程碑。它们不仅深刻改变了Java的开发模式和性能表现,还极大地推动了Java在函数式编程和动态语言支持方面的进步。本文将从技术角度浅析JVM中的invokedynamic指令及其与Java Lambda语法的紧密联系。
252 0
|
Android开发 C++
【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )(二)
【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )(二)
2010 0
【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )(二)
|
Android开发
如何 将Android Studio升级至最新版(4.0)
如何 将Android Studio升级至最新版(4.0)
1815 0
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的在线视频点播系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的在线视频点播系统附带文章和源代码部署视频讲解等
222 8
|
机器学习/深度学习 人工智能 安全
人工智能时代,网络安全公司F5如何提高防护效能?
人工智能时代,网络安全公司F5如何提高防护效能?
390 0
|
Linux 虚拟化
top中的st含义—虚拟化底层从你的vm里偷了多少资源
linux在top中打印中有st显示项,这一显示项单位为百分比,它的值表明你的系统花了百分之多少等待得到真正的cpu资源。 在正常情况下在云平台下st最好为0,这表明你的vm得到了所有必要的cpu资源。
5276 0