من میدانم که هیچ نمیدانم.
بررسی Enhanced Object literals در جاوااسکریپ
در این آموزش ، با Syntax جدید تعریف Enhanced object literal آشنا می شویم که بسیار کد ما را خواناتر و منعطف تر می کند.
یکی از مشهورترین pattern ها برای ایجاد objects در جاوا اسکریپت(javascript) Enhanced object literal است.
function createMachine(name, status) {
return {
name: name,
status: status
};
}
تابع ()createMachine دو تا arguments به نام های name و status
می گیرد و یک object literal یا دو تا properties به نام های name
و status برمی گرداند.properties های name
و status
مقادیر خودشون رو از پارامترهای name
و status
می گیرد.این syntax به نظر اضافی است زیرا name
و status
دو بار برای name و value تکرار شده اند.
ویژگی جدید ES6 به شما این امکان را می دهد که وقتی property یک property با نام local variable یکسان است ، نام آن را بدون colon و value حذف کنید.
برای مثال شما می توانید تابع ()createMachine را در ES6 به شکل زیر بازنویسی کنید:
function createMachine(name, status) {
return {
name,
status
};
}
هنگامی که property یک object literal فقط نام دارد ، موتور جاوا اسکریپت متغیری با همان نام را درsurrounding scope جستجو می کند. اگر موتور جاوا اسکریپت بتواند یکی را پیدا کند ، مقدار متغیر را به property اختصاص می دهد.
به طور مشابه ، می توانید یک object literal را از م local variables بسازید که در مثال زیر نشان داده شده است:
let name = 'Computer', status = 'On';
let machine = {
name,
status
};
برای جا افتادن بیشتر این مفهوم به یک مثال دیگر توجه کنید:
const openingHours = {
thu: {
open: 12,
close: 22,
},
fri: {
open: 11,
close: 23,
},
sat: {
open: 0,
close: 24,
},
};
const restaurant = {
nameRestaurant: 'Classico Italiano',
location: 'Via Angelo Tavanti 23, Firenze, Italy',
categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'],
starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'],
mainMenu: ['Pizza', 'Pasta', 'Risotto'],
openingHours,
}
مطلبی دیگر از این انتشارات
نقطه عطفی دیگر برای بیتکوین؛ تعداد کل آدرسهای بیتکوین از یک میلیارد عدد فراتر رفت!
مطلبی دیگر از این انتشارات
معماری بیت کوین
مطلبی دیگر از این انتشارات
ان اف تی NFT چیست؟