new操作符的手动实现

function myNew(constructor, ...args) {
​  const obj = Object.create(constructor.prototype);
 // 创建一个新对象并链接到构造函数的原型​
  const result = constructor.apply(obj, args);
 // 将构造函数的 this 指向新对象并执行构造函数​
  return result instanceof Object ? result : obj;
 // 确保构造函数返回一个对象,如果没有则返回新对象​
}​​
function Person(name) {​
  this.name = name;
​}​​
const person1 = myNew(Person, 'Alice');​
console.log(person1.name); // 输出 "Alice"
posted @ 2025-10-11 17:01  阿木隆1237  阅读(4)  评论(0)    收藏  举报