Arrow Function

Arrow Function یا تابع پیکانی در ES6 معرفی شد و یک روش کوتاه‌تر و مدرن برای نوشتن تابع‌هاست.

1️⃣ سینتکس ساده

// فانکشن معمولی function add(a, b) { return a + b; } // فانکشن پیکانی const addArrow = (a, b) => a + b; console.log(add(2, 3)); // 5 console.log(addArrow(2, 3)); // 5

🔹 اگر فقط یک خط کد دارید، نیاز به {} و return نیست.

2️⃣ وقتی فقط یک پارامتر دارید

const square = x => x * x; console.log(square(4)); // 16

🔹 پرانتز () برای یک پارامتر اختیاری است.

3️⃣ وقتی هیچ پارامتری ندارید

const greet = () => "Hello World!"; console.log(greet()); // Hello World!

4️⃣ چند خط کد (باید از {} و return استفاده کنید)

const multiply = (a, b) => { let result = a * b; return result; }; console.log(multiply(4, 5)); // 20

5️⃣ آررو فانکشن داخل متدهای Array

const numbers = [1, 2, 3, 4, 5]; const doubled = numbers.map(n => n * 2); console.log(doubled); // [2, 4, 6, 8, 10]

6️⃣ تفاوت مهم با تابع معمولی (this)

  • در فانکشن معمولی مقدار this بستگی به محل صدا زدن تابع دارد.

  • در Arrow Function مقدار this از محیط بیرونی (lexical scope) گرفته می‌شود.

مثال:

function Person() { this.age = 0; setInterval(() => { this.age++; // arrow تابع از this محیط بیرونی استفاده می‌کنه console.log(this.age); }, 1000); } new Person();

اگر بجای arrow function از فانکشن معمولی استفاده کنیم، this به آبجکت Person اشاره نمی‌کنه و مشکل ایجاد میشه.

📌 جمع‌بندی

  • کد کوتاه‌تر و خواناتر

  • بدون this مخصوص به خود → از محیط بیرونی می‌گیره

  • مناسب برای callback و متدهای array مثل map, filter, forEach

  • برای متدهای object یا constructor مناسب نیست