Arrow functions sun fi gajeriya, amma bambance-bambancar gaske sun kasance a cikin halin ɗaukar this, ba kawai sako ba.
const regular = function () {};
const arrow = () => {};
const = x => x * ;
Arrow functions sun fi gajeriya, amma bambance-bambancar gaske sun kasance a cikin halin ɗaukar this, ba kawai sako ba.
const regular = function () {};
const arrow = () => {};
const = x => x * ;
1. Babu nasu this — arrows suna gida this daga wuri da ke kewaye. Wannan shine bambance-bambancen da ya fi mahimmanci da dalilin da ya sa suke kyau domin calls na bago:
const timer = {
seconds: 0,
start() {
setInterval(() => this.seconds++, 1000); // ✅ `this` is timer
// a regular function here would have its own `this` (undefined) → bug
},
};
2. Babu arguments object — yi amfani da rest parameters a maimakon haka:
const sum = (...args) => args.reduce((a, b) => a + b, 0);
**3. Ba a iya amfani da su a matsayin masu ba — new arrow() yana jefa, kuma babu prototype nasu.
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`
};
Kad ba a yi amfani da arrows domin hanyoyin aiki na object (ba za su ɗauki object ba) ko lokacin da kana buƙatar dynamic this/arguments (event handlers da ke dogara da this kasua abin da aka maimaita).
Yi amfani da arrows domin calls na bago da gajeriya aiki inda neman this shine abin da kuke so; yi amfani da aiki na yau-yau domin hanyoyin, masu ba, da hanyoyin prototype.
Ɗakin karatu na tambayoyin hira na IT tare da amsoshi cikakke — daga Junior zuwa Senior.
Ba da Gudummawa