એરો ફંક્શન ટૂંકા છે, પરંતુ વાસ્તવિક તફાવતો બાઈન્ડિંગ વર્તનમાં છે, માત્ર સિન્ટેક્સમાં નહીં.
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 પરામીટર વાપરો:
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 ઇન્ટરવ્યૂ પ્રશ્નોની લાઇબ્રેરી — જુનિયરથી સિનિયર સુધી.
દાન કરો