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.将初始化完毕的新对象地址,保存到等号左边的变量中

相关文章
|
4月前
|
C语言
C语言操作符逻辑与,逻辑或面试真题(2)
C语言操作符逻辑与,逻辑或面试真题(2)
|
4月前
|
程序员 C语言 C++
C语言操作符if语句好习惯 详解分析操作符(详解4)
C语言操作符if语句好习惯 详解分析操作符(详解4)
|
3月前
|
编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
39 3
|
3月前
|
存储 编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
32 1
|
9月前
|
人机交互 C语言
拿捏c语言循环
拿捏c语言循环
32 0
|
10月前
|
编译器 测试技术 C语言
【C语言航路外传】隐式转换与优先级的那点事(你程序总是出bug的一个重要原因)
【C语言航路外传】隐式转换与优先级的那点事(你程序总是出bug的一个重要原因)
82 0
|
编译器 C语言 C++
C语言数组越界造成的死循环例子,当你得到了这个意想不到的结果的时候,你肯定不知道为什么,看你还敢不敢越界访问数组了
C语言数组越界造成的死循环例子,当你得到了这个意想不到的结果的时候,你肯定不知道为什么,看你还敢不敢越界访问数组了
108 0
|
编译器 C语言
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)
74 0
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)
|
小程序 C语言
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)2
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)
83 0
【C语言】一文带你拿捏分支和循环语句(一万字详细讲解)2