鲁棒性
来源:8-7 new一个对象的过程是什么,手写代码表示
内六角
2022-03-10
这里没有考虑构造函数返回值的类型,不能直接 return obj,使用 new 操作符时:
如果构造函数返回的是值类型,那应该return obj。
如果构造函数返回的是引用类型,应该 return 这个引用类型。
写回答
3回答
-
无所留念
2022-11-02
export function customNew<T>(constructor: Function, ...args: any[]): T { // 第一步: 创建空对象,并将构造函数的原型设为空对象的原型 const obj = Object.create(constructor.prototype) // 第二步: this指向这个空对象,并执行构造函数 const res = constructor.apply(obj, args) // 第三步: 返回对象 return Object.prototype.toString.call(res) === '[object Object]' ? res : obj }
说得没错
00 -
qq_慕函数5529610
2022-03-25
这里返回的话是不是只需要typeof 判断是object 就行了
00 -
双越
2022-03-10
补充的好~
012023-01-03
相似问题