当前位置: 首页 > Web前端 > JavaScript

New算子原理

时间:2023-03-26 22:04:38 JavaScript

完整高频题库仓库地址:https://github.com/hzfe/awesome-interview完整高频题库阅读地址:https://febook.hzfe.org/相关问题Newoperator是做什么的?new算子的模拟实现回答要点构造对象实例new算子通过执行自定义构造函数或内置对象构造函数生成对应的对象实例。知识点深入1.new操作符在内存中创建一个新的对象是干什么的。在新对象内部分配\_\_proto\_\_作为构造函数的原型属性。构造函数内部的this被赋值给新对象(即this指向新对象)。执行构造函数中的代码(向新对象添加属性)。如果构造函数返回一个非空对象,则返回该对象。否则返回这个。2.new算子的模拟实现functionfakeNew(){//创建一个新对象varobj=Object.create(null);varConstructor=[].shift.call(arguments);//将对象的__proto__赋值给构造函数的prototype属性obj.__proto__=Constructor.prototype;//在构造函数中将this分配给一个新对象varret=Constructor.apply(obj,arguments);//返回一个新对象returntypeofret==="object"&&ret!==null?ret:obj;}functionGroup(name,member){this.name=name;this.member=member;}vargroup=fakeNew(Group,"hzfe",17);参考资料新算子-MDN新算子