实现new

205 阅读1分钟

什么是new?

new只是一个语法糖,这个语法糖被设计出来,通过构造函数来创建一个实例对象

new又经历了什么过程?

  1. new会在内存中创建一个新的空对象({})
  2. 将空对象原型的内存地址__proto__指向函数的原型对象
  3. 利用函数的call方法,改变this指向(window => 新对象),由原指向window的绑定对象this指向现创建出的新对象,在空对象上挂载属性或方法
  4. new会返回这个新对象

image.png

image.png

总结:new通过构造函数来创建一个实例对象,优化内存空间,使用__proto__保存共同的属性