1.new关键字的执行过程
-
1、创建一个空对象
-
2、改变this指向
-
3、向其中添加属性
- 4、返回这个对象
2.手动模拟new的实现
new关键字的执行过程 如果一个类返回值是一个引用类型那么就返回这个引用类型值 function mockNew(fn){ let obj = {} let newValue = fn.call(obj) if((typeof returnVal === 'object' && returnVal !== null) || typeof returnVal === 'function'){ return returnVal; } obj.__proto__ = fn.prototype return obj }
标签:function,obj,手动,操作符,returnVal,new,fn From: https://www.cnblogs.com/alwaysrun/p/17177941.html