New 实现过程
2019-03-29 本文已影响0人
石石石石_0321
1.新生成一个对象
2.链接到原型
3.绑定this
4.返回新对象
function create(){
//创建空对象
let obj = new Object();
//获得构造函数
let Con = [].shift.call(arguments);
//链接原型
obj.__proto__ = Con.prototype;
//绑定this,执行构造函数
let result = Con.apply(obj,arguments);
//确保new出来的是个对象
return typeof result === 'object' ? result : obj;