前言
想要手动实现 new 操作符,就必须要知道 new 操作符的作用是什么。
new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。
当你调用 new 操作符之后,会进行如下操作:
- 创建一个空对象。
- 将新创建的对象的原型链接到需要实例化的对象原型上(即修改新对象的原型)。
- 设置 this 上下文对象为新创建的对象,执行构造函数中的代码。
- 如果该函数没有返回对象(非 Object 类型),则返回 this (即新建对象)。
代码实现
function myNew(constructor, ...args) {
if (typeof constructor !== 'fu