برنامه نویسی

توابع پیکان – جاوا اسکریپت – انجمن DEV

4 تفاوت بین توابع معمولی و توابع پیکان:

1. نحو

عملکرد منظم:

function multiply(num1, num2) {
    return num1 * num2;
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تابع پیکان:

const multiply = (a,b) => a * b;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به برخی تفاوت ها در نحو توجه کنید – توابع پیکان عبارتند از:

  • تعریف شده با ‘=>’
  • خیر تابع کلمه کلیدی
  • همیشه نیازی به {} نیست
  • ضمنی “برگشت‘ کلمه کلیدی

*اگر فقط یک پارامتر باشد، پرانتز مورد نیاز نیست

2. بالا بردن

عملکرد منظم:

sayHello(); 
//=> Hello!
function sayHello() {
    console.log(“Hello!”);
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تابع پیکان:

sayHello();
//=> sayHello is not defined 
const sayHello = () => console.log("Hello!");
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مورد، فراخوانی تابع مربوطه قبل از تعریف آنها فقط برای مثال اول به دلیل بالا بردن کار می کند. همانطور که در اینجا ذکر شد، عبارات توابع (توابع فلش) بالا نمی روند، به این معنی که شما فقط می توانید تابع را پس از اعلام آن فراخوانی کنید.

3. توابع پاسخ به تماس / نحو ناشناس

عملکرد منظم:

function squareNum(num) {
  return num * num;
}

const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map(squareNum);
console.log(squaredNumbers);
//=> [1, 4, 9, 16, 25]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تابع پیکان:

const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map(num => num * num);
console.log(squaredNumbers);
//=> [1, 4, 9, 16, 25]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

4. دامنه واژگانی “این”

عملکرد منظم:

const person = {
  name: Alice,
  sayHello: function() {
    console.log(`Hello, my name is ${this.name}`);
  },
 };
person.sayHello();
//=> Hello, my name is Alice
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تابع پیکان:

const person = {
  name: Alice,
sayHelloArrow: () => {
    console.log(`Hello, my name is ${this.name}`);
  }
}
person.sayHelloArrow(); 
//=> Hello, my name is undefined
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

همانطور که مشاهده شد، فقط در مثال اول کلمه کلیدی “این‘ توانست از طریق ویژگی ‘name’ (//=>’Alice’) به شی شخص دسترسی پیدا کند. در مورد توابع فلش هم این اتفاق نمی افتد، زیرا تابع فلش خود را ندارد.اینمقدار، که «this» را از دامنه واژگانی محصور به ارث می‌برد، در این مورد شی سراسری است که دارای ویژگی «name» نیست. بنابراین، «تعریف نشده» برمی‌گردد.

نتیجه:

اینها برخی از تفاوت ها هستند و در بیشتر موارد مزایای توابع فلش شامل – 1- به ما اجازه می دهد تا یک نحو تابع کوتاه تری بنویسیم. 2- از مشکلات بالا بردن اجتناب کنید. 3- نوشتن توابع پاسخ به تماس مختصر و قابل استفاده مجدد را به خصوص برای عملیات آرایه آسان کنید. از سوی دیگر، استفاده از توابع 4-پیکانی در هنگام داشتن کلمه کلیدی دشوار است.اینبنابراین مهم است که اطمینان حاصل شود کهاینمقدار ‘ به درستی به شیئی که متد فراخوانی شده است محدود می شود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا