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

时间:2018-11-15 13:08:28

标签: javascript this prototype-chain

您好,专家们是我的代码,我被困在这个关键字如何向对象添加属性的过程中。

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” 也是如此。

1 个答案:

答案 0 :(得分:1)

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

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

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

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