Tohle jsem viděl nesčetněkrát. Tohle vám skutečně fungovat nebude 🙂
// treba index.js const a = { num: 9, inc: () => { this.num++; } }; a.inc();
Arrow functions jsou super, ale je dobré vědět jak fungují… Respektive vědět minimálné to, že nemají this
, mino jiné, a proto se neprovede this.num++
nad num
definovaném v objektu a
, jak by se na první pohled mohlo zdát. this
ukazuje na parent, tedy v tomto případě global
, kde žádný num
není 🙂
Správně tedy
// treba index.js const a = { num: 9, inc: function() { this.num++; } }; a.inc();
Pěkný článek popisující detailně chování this
kdekoliv v JS.