?">
试题
?"/> ?" id="name" />
考点

js语言和框架-JavaScript语言-语法相关-操作符相关

面5笔5

如何手写一个 new

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

先理清楚 new 关键字调用函数都的具体过程,那么写出来就很清楚了。

首先创建一个空的对象,空对象的 ___proto____属性指向构造函数的原型对象
把上面创建的空对象赋值构造函数内部的this,用构造函数内部的方法修改空对象
如果构造函数返回一个非基本类型的值,则返回这个值,否则上面创建的对象

function _new(fn, ...arg) {
var obj = Object.create(fn.prototype);
const result = fn.apply(obj, ...arg);
return Object.prototype.toString.call(result) == '[object Object]' ? result : obj;
}


评论

雾岛残月

2022-01-04 21:00:00

0 0

冰冻三尺

2021-09-11 18:25:00

0 0

加载更多