题解 | #实现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;
}
查看2道真题和解析
小天才公司福利 1323人发布