题解 | #实现new操作符#
实现new操作符
https://www.nowcoder.com/practice/71c2aff7cb6641099aa17d56157a91b9
const _new = function(Ctor, ...argsArray) { // 确认构造器是函数 if(typeof Ctor !== 'function') return; // 通过Object.create为新对象设置原型,然后执行构造器函数 const instance = Object.create(Ctor.prototype, { constructor: Ctor }); const result = Ctor.call(instance, ...argsArray); // 如果构造器执行结果是对象则返回结果,否则返回新对象 const isObject = result !== null && typeof result === 'object'; return isObject ? result : instance; }