Kam se to zapíše?
důležitost: 5
Máme objekt králík zděděný z objektu zvíře.
Jestliže zavoláme králík.žer(), který objekt získá vlastnost sytý: zvíře nebo králík?
let zvíře = {
žer() {
this.sytý = true;
}
};
let králík = {
__proto__: zvíře
};
králík.žer();
Odpověď zní: králík.
Je to proto, že this je objekt před tečkou, takže králík.žer() změní objekt králík.
Hledání vlastnosti a spouštění metody jsou dvě různé věci.
Metoda králík.žer je nejprve nalezena v prototypu a pak je spuštěna s this=králík.