एरो फंक्शन अधिक लहान आहेत, परंतु वास्तविक फरक बाइंडिंग वर्तनमान मध्ये आहेत, केवळ सिंटॅक्स नाही.
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 मुलाखत प्रश्नांचे ग्रंथालय — Junior पासून Senior पर्यंत.
देणगी द्या