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

Mob*_*war 7 javascript this prototype-chain

嗨,专家,这是我的代码,我被困在this关键字如何向对象添加属性。

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

我知道添加了属性thisObject.prototype继承了所有对象,但是两者都是等效的,即this是否还在原型中添加属性?

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

如果没有,那么我们如何访问this在同一对象中添加的属性(在我的情况下是carMake功能)。

并且确实 this.companyName='Lamborghini'LamborghiniUrus.price="200000"等价。

Que*_*tin 3

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

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

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

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