ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的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; } ```