0%

JS--new 原理

使用new命令时,它后面的函数依次执行下面的步骤。

  1. 创建一个空对象,作为将要返回的对象实例。
  2. 将这个空对象的原型,指向构造函数的prototype属性。
  3. 将这个空对象赋值给函数内部的this关键字。
  4. 开始执行构造函数内部的代码。
1
2
3
4
5
const newInstance(Constructor, ...args) {
const o = Object.create(Constructor.prototype)
Constructor.apply(o, args)
return o
}