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.