手写New 发表于 2025-10-20 分类于 前端 阅读次数: 1234567891011121314151617181920function myNew(constructor, ...args) { // 1. 创建一个新对象,并将其原型指向构造函数的原型 const obj = Object.create(constructor.prototype); // 2. 执行构造函数,并将this绑定到新创建的对象 const result = constructor.apply(obj, args); // 3. 如果构造函数返回了一个对象,则返回该对象,否则返回新创建的对象 return result instanceof Object ? result : obj;}// 测试function Person(name, age) { this.name = name; this.age = age;}const p1 = myNew(Person, 'Alice', 25);console.log(p1.name); // 输出: Aliceconsole.log(p1.age); // 输出: 25 -------------本文结束感谢您的阅读------------- 本文作者: lidya 本文链接: https://lidyaqf.github.io/2025/10/20/手写New/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!