'this' 关键字在原型链中如何工作?

How does 'this' keyword work in prototype chain?

您好专家,这是我的代码,我不知道 this 关键字如何将 属性 添加到对象。

function carMaker(){
 this.companyName='Lamborghini'; 
 }
 let LamborghiniUrus = new carMaker();
 carMaker.prototype.country="Italy"
 LamborghiniUrus.price="200000";

我知道 属性 添加了 this 并且 Object.prototype 被继承到所有对象,但两者是等价的,即 this 也添加了 属性制作原型?

如果那么为什么console.log(carMaker.prototype.companyName)未定义。

如果 没有 那么我们如何访问在同一对象中添加了 this 的 属性(在我的例子中是 carMake 函数)。

而且 this.companyName='Lamborghini'LamborghiniUrus.price="200000" 是否等价。

结合 newthis 指的是您正在创建的对象。

因此 this.companyName='Lamborghini' 在实际实例上设置 属性。

当您尝试从一个对象读取一个属性时,它首先尝试从对象本身读取属性。如果找不到,它会查找原型链,直到找到具有该 属性 的对象(或用完所有原型)。

向对象写入 属性 不会触及原型链上的任何内容。