企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
new操作符做了这些事: 1. 它创建了一个全新的对象 2. 它会被执行[[Prototype]](也就是__proto__)链接 3. 它使this指向新创建的对象 4. 通过new创建的每个对象将最终被[[Prototype]]链接到这个函数的prototype对象上 5. 如果函数没有返回对象类型Object(包含Functoin, Array, Date, RegExg, Error),那么new表达式中的函数调用将返回该对象引用 ``` //模拟new function objectFactory() { const obj = new Object(); const Constructor = [].shift.call(arguments); obj.__proto__ = Constructor.prototype; const ret = Constructor.apply(obj, arguments); return typeof ret === "object" ? ret : obj; } ```