آموزش ری اکت (قسمت سوم)

در مقالات آموزشی ری اکت در بخش اول و دوم توضیحاتی در این حیطه ارائه کردیم، به ادامه آموزش بپردازیم. 

بازگشت ضمنی (Implicit Return)

تابع‌های Arrow امکان داشتن مقادیر بازگشتی ضمنی را فراهم ساخته‌اند. این مقادیر بدون استفاده از کلیدواژه return بازگشت می‌یابند. طرز کار این بازگشت به این صورت است که گزاره‌های تک‌خطی در بدنه تابع به صورت زیر تعریف می‌شوند:

const myFunction = () => 'test'
myFunction() //'test'

مثال دیگر زمانی است که یک شیء بازگشت می‌دهیم. دقت کنید که باید آکولادها را درون پرانتزها قرار دهید تا با پرانتزهای تشکیل دهنده بدنه تابع اشتباه گرفته نشوند:

const myFunction = () => ({ value: 'test' })
myFunction() //{value: 'test'}

طرز کار this در تابع‌های Arrow

This مفهومی است که شاید درک آن دشوار باشد، چون بسته به زمینه و همچنین بر اساس حالت جاوا اسکریپت (strict یا غیر آن) متفاوت است.

می‌بایست این نکته را روشن کنیم، زیرا تابع‌های Arrow به طرزی کاملاً متفاوت از تابع‌های معمولی عمل می‌کنند. زمانی که یک متد برای یک شیء تعریف می‌شود، در تابع معمولی this اشاره به شیء دارد و از این رو می‌توان کد زیر را داشت:

const car = {
  model: 'Fiesta',
  manufacturer: 'Ford',
  fullName: function() {
    return `${this.manufacturer} ${this.model}`
  }
}

بدین ترتیب فراخوانی ()car.fullName مقدار “Ford Fiesta” را بازگشت می‌دهد.

دامنه this در تابع‌های Arrow از زمینه اجرایی به ارث می‌رسید. یک تابع Arrow به هیچ وجه به this اتصال نمی‌یابد و از این رو مقدار آن در پشته فراخوانی جستجو می‌شود. بدین ترتیب کدی مانند ()car.fullName کار نخواهد کرد و رشته “undefined undefined” را بازگشت می‌دهد:

const car = {
  model: 'Fiesta',
  manufacturer: 'Ford',
  fullName: () => {
    return `${this.manufacturer} ${this.model}`
  }
}

به همین دلیل، تابع‌های Arrow به عنوان متدهای شیء مناسب نیستند. همچنین تابع‌های Arrow نمی‌توانند به عنوان سازنده (constructor) استفاده شوند، زیرا در هنگام مقداردهی اولیه یک خطای TypeError ایجاد می‌شود.

در این موارد باید از تابع‌های معمولی استفاده کرد که زمینه دینامیک مورد نیاز نیست. همچنین این مورد در هنگام مدیرت رویدادها، موجب ایجاد مشکل می‌شود. شنونده‌های رویداد DOM سعی می‌کنند this را روی عنصر هدف تنظیم کنند و اگر در handler رویداد روی this تکیه کنیم، به یک تابع معمولی نیاز خواهیم داشت:

const link = document.querySelector('#link')
link.addEventListener('click', () => {
  // this === window
})


const link = document.querySelector('#link')
link.addEventListener('click', function() {
  // this === link
})

آموزش ری اکت

Rest و Spread

می‌توان یک آرایه، یک شیء یا یک رشته را با استفاده از عملگر spread بسط داد. توضیح خود را با مثالی از آرایه آغاز می‌کنیم. فرض کنید:

const a = [1، ۲، ۳]

شما می‌توانید یک آرایه جدید با کد زیر بسازید:

const c = [...a]

این کد برای شیء نیز به خوبی کار می‌کند. شیء را با دستور زیر کلون کنید:

دیدگاه شما:

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

تکنولوژی های استفاده شده در netflix | Netflix TechStack

۱۴

آذر
react, SWIFT, The best startup, اخبار, استارت اپ, بازاریابی, بازاریابی محتوا, تجارت, تحقیقات بازار, جاوا اسکریپت, طراحی اپلیکیشن

تکنولوژی های استفاده شده در netflix | Netflix TechStack

در این مقاله قصد داریم تکنولوژی های مورد استفاده در Netflix رو براتون شهر بدیم . پس ادامه مطلب رو دنبال کنید 🙂 Tech stack یا پشته فناوری به مجموعه‌ای از فناوری‌ها، زبان‌ها، ابزارها و سرویس‌هایی اشاره دارد که در […]

۲۴

اردیبهشت
هوش مصنوعی

معرفی بهترین ابزار هوش مصنوعی

ابزار هوش مصنوعی (Artificial Intelligence) به دسته‌ای از تکنولوژی‌ها گفته می‌شود که به کامپیوترها اجازه می‌دهد تا به صورت خودکار، هوشمندانه و بدون نیاز به دخالت انسان، مسائل را حل کنند و تصمیم‌هایی بگیرند. در این روش، کامپیوتر با استفاده[…]

http://platinco.ir/tag/python/

۱۴

اردیبهشت
پایتون

آموزش کتابخانه pygame

انواع روش های ساخت بازی با پایتون Python یکی از زبان‌های محبوب برای توسعه بازی است و به دلیل سادگی و قابلیت استفاده آن، توسعه دهندگان بازی‌های زیادی از آن استفاده می‌کنند. در ادامه، انواع روش‌های ساخت بازی با پایتون[…]