我会引用康托的教科书
当执行 new Object 时,正在创建的对象被设置为构造函数原型的proto,在这种情况下,它等于内置的 Object.prototype。
我不明白为什么创建对象的原型是 Object.prototype 而不仅仅是 Object?毕竟原型是一个属性,原型必须是一个对象。
我会引用康托的教科书
当执行 new Object 时,正在创建的对象被设置为构造函数原型的proto,在这种情况下,它等于内置的 Object.prototype。
我不明白为什么创建对象的原型是 Object.prototype 而不仅仅是 Object?毕竟原型是一个属性,原型必须是一个对象。
Object是一个构造函数。构造函数有一个特殊的原型属性,用于构造一个对象。
因此,一切都很合乎逻辑:
如果使用 New 关键字调用函数,则解释器会创建一个空对象并将其作为上下文传递给函数的构造函数。这意味着这个空对象成为函数内部 this 关键字的值。在函数初始化新创建的对象的属性后,该对象成为对象创建表达式的值,并且新创建的对象的原型属性的值被设置为构造函数的原型属性的值。这些是 JS 语言中创建对象的规则