new 实现原理
原理
创建一个空对象,构造函数中的
this
指向这个空对象这个新对象被执行
[[原型]]
连接执行构造函数方法,属性和方法被添加到
this
引用的对象中如果构造函数中没有返回其它对象,那么返回
this
,即创建的这个的新对象,否则,返回构造函数中返回的对象
function _new(fn, ...arg) {
let obj = Object.create(fn.prototype);
let ret = fn.apply(obj, arg);
return ret instanceof Object ? ret : obj;
}
Object.create()
方法创建一个新对象,使用现有的对象来提供新创建的对象的 __proto__
Last updated
Was this helpful?