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)
我知道添加了属性this并Object.prototype继承了所有对象,但是两者都是等效的,即this是否还在原型中添加属性?
如果是,那么为什么console.log(carMaker.prototype.companyName)未定义。
如果没有,那么我们如何访问this在同一对象中添加的属性(在我的情况下是carMake功能)。
并且确实 this.companyName='Lamborghini'和LamborghiniUrus.price="200000"等价。
与 结合使用new,this指的是您正在创建的对象。
因此this.companyName='Lamborghini'在实际实例上设置一个属性。
当您尝试从对象读取属性时,它首先尝试从对象本身读取属性。如果找不到,它将查找原型链,直到找到具有该属性的对象(或用完原型)。
向对象写入属性不会触及原型链上的任何内容。