new 实现
2020-09-23 本文已影响0人
行走的蛋白质
- new运算符都做了哪些操作呢?
- 1、创建了一个新对象(是Object类型的数据)
- 2、将this指向新对象
- 3、执行构造函数,给对象添加属性和方法 (将创建的对象的原型指向构造函数的原型)
- 4、返回一个对象(如果构造函数本身有返回值且是对象类型,就返回本身的返回值,如果没有才返回新对象)
function _new(fn, ...args) {
const newO = Object.create(fn.prototype)
const result = fn.apply(newO, args)
return result instanceof Object ? result : newO
}