zpět k lekci

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.