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;
网友评论