Simu za mshale ni fupi, lakini tofauti halisi ziko katika tabia ya kuunganisha, si tu syntax.
const regular = function () {};
const arrow = () => {};
const short = x => x * 2; // implicit return for one expression
Simu za mshale ni fupi, lakini tofauti halisi ziko katika tabia ya kuunganisha, si tu syntax.
const regular = function () {};
const arrow = () => {};
const short = x => x * 2; // implicit return for one expression
1. Hakuna this yao — simu za mshale zinawasilisha this kutoka kwa ukoa unaozunguka. Hii ndio tofauti muhimu zaidi na kwa nini zinajuza kwa callbacks:
const timer = {
seconds: 0,
start() {
setInterval(() => this.seconds++, 1000); // ✅ `this` is timer
// a regular function here would have its own `this` (undefined) → bug
},
};
2. Hakuna kitu cha arguments — tumia vigezo vya kupumzika badala yake:
const sum = (...args) => args.reduce((a, b) => a + b, 0);
3. Haiwezi kutumiwa kama wajenzi — new arrow() inakatika, na hazina prototype.
const obj = {
name: "Ann",
greet: () => `Hi ${this.name}`, // ❌ `this` is NOT obj (it's outer scope)
greet2() { return `Hi ${this.name}`; }, // ✅ method needs dynamic `this`
};
Usitumie simu za mshale kwa njia za kitu (hazitaunganishi kwa kitu) au wakati unahitaji this ya nguvu/arguments (viendeshaji vya tukio vinavyotegemea this kuwa kipengele).
Tumia simu za mshale kwa callbacks na kazi fupi ambapo kuwasilisha this ndicho unachotaka; tumia kazi za kawaida kwa njia, wajenzi, na njia za prototypi.
Maktaba ya maswali ya mahojiano ya IT yenye majibu ya kina — kutoka Junior hadi Senior.
Changia