您好,专家们是我的代码,我被困在这个关键字如何向对象添加属性的过程中。
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” 也是如此。
答案 0 :(得分:1)
new
与this
结合使用,是指您正在创建的对象。
因此this.companyName='Lamborghini'
在实际实例上设置属性。
当您尝试从对象中读取时,它首先尝试从对象本身中读取该属性。如果找不到一个,它将查找原型链,直到找到具有该属性的对象(或用完原型)。
将属性写入对象不会触及原型链中的任何内容。