एरो फङ्क्शनहरू छोटो हुन्छन्, तर वास्तविक भिन्नताहरू बाइन्डिङ व्यवहार मा छन्, केवल वाक्य रचना मा होइन।
const regular = function () {};
const arrow = () => {};
const short = x => x * 2; // implicit return for one expression
एरो फङ्क्शनहरू छोटो हुन्छन्, तर वास्तविक भिन्नताहरू बाइन्डिङ व्यवहार मा छन्, केवल वाक्य रचना मा होइन।
const regular = function () {};
const arrow = () => {};
const short = x => x * 2; // implicit return for one expression
1. आफ्नो this छैन — एरोहरूले संलग्न गुंजाइशबाट this प्राप्त गर्छन्। यो सबैभन्दा महत्त्वपूर्ण भिन्नता हो र तिनीहरू किन कलब्याकहरूको लागि बढिया छन्:
const timer = {
seconds: 0,
start() {
setInterval(() => this.seconds++, 1000); // ✅ `this` is timer
// a regular function here would have its own `this` (undefined) → bug
},
};
2. arguments वस्तु छैन — यसको सट्टा rest parameters प्रयोग गर्नुहोस्:
const sum = (...args) => args.reduce((a, b) => a + b, 0);
3. कन्स्ट्रक्टरको रूपमा प्रयोग गर्न सकिंदैन — new arrow() फेंकिन्छ, र तिनीसँग 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`
};
वस्तु विधिहरू (तिनीहरू वस्तुसँग बाइन्ड हुनबाछैन) वा जब तपाईलाई गतिशील this/arguments चाहिन्छ (ईभेन्ट ह्यान्डलरहरू जो this तत्व हो भन्ने कुरामा निर्भर छन्) को लागि एरोहरू प्रयोग गर्नुहोस्।
कलब्याकहरू र छोटो फङ्क्शनहरूको लागि एरोहरू प्रयोग गर्नुहोस् जहाँ this प्राप्त गरिरहनु भनेको तपाई चाहनु भएको कुरा हो; विधिहरू, कन्स्ट्रक्टरहरू, र प्रोटोटाइप विधिहरूको लागि नियमित फङ्क्शनहरू प्रयोग गर्नुहोस्।
विस्तृत उत्तरसहित IT अन्तर्वार्ता प्रश्नहरूको पुस्तकालय — जुनियरदेखि सिनियरसम्म।
दान गर्नुहोस्