1.创建一个新对象;
2.该对象执行[[Prototype]](即__proto__)链接;
3.将构造函数的作用域赋值给新对象(this指向该新对象);
4.执行构造函数中的代码(给该对象添加属性、方法);
5.若无显式返回对象或函数,才返回新对象。
function newFn(fn, ...args) { // 1.创建一个新对象 const obj = {} // 2.将fn的原型链复制道对象的原型链上 obj._proto_ = fn.prototype // 3.修改fn函数的this并执行 const res = fn.apply(obj, args) // 4.如果fn的返回值是一个对象则返回,如果是非对象则返回obj return typeof res === 'object' ? res : obj } const f2 = newFn(fn, '参数')
标签:obj,内部,对象,res,new,构造函数,fn,const From: https://www.cnblogs.com/qiuchuanji/p/17642532.html