new
运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。new
关键字会进行如下的操作:
手写new的具体实现
function _new(func, ...args){ // 尽量不使用__proto__ // let obj = {}; // obj.__proto__ = func.prototype let obj = Object.create(func.prototype);//兼容IE let result = func.call(obj, ...args); if(result != null && /^(‘object|function‘)$/.test(result)) return result; return obj }
原文:https://www.cnblogs.com/zmyxixihaha/p/13281531.html