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;

上一篇下一篇

猜你喜欢

热点阅读