𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد
1.71K subscribers
217 photos
81 videos
8 files
360 links
اینجا قراره برنامه نویسی رو خیلی ساده و با حال خوب یاد بگیریم 🚀

📺 𝗬𝗢𝗧𝗨𝗕𝗘 : https://rb.gy/37siuq

📷 𝗜𝗡𝗦𝗧𝗔𝗚𝗥𝗔𝗠 : https://rb.gy/jmz946

👥 𝗚𝗥𝗢𝗨𝗣 : @CoolyCoder

𝗔𝗗𝗦 : @ADS_CoolyCode

✌️ 𝗣𝗩 : @CoolyCode_Support
Download Telegram
#WhatsThat #javascript #object


* متد Object.defineProperty در جاوااسکریپت چیست ؟  *
#part1

یکی از روش‌های قدرتمند در جاوااسکریپت برای تعریف یا تغییر ویژگی‌های یک شیء به صورت دقیق و کنترل شده Object.defineProperty است. با استفاده از این متد، می‌توانید ویژگی‌های جدیدی به یک آبجکت اضافه کنید یا ویژگی‌های موجود را تغییر دهید و حتی رفتارهای سفارشی مدنظر خودتون رو برای آن‌ها تعریف کنید.

ویژگی های کلیدی Object.defineProperty 🚀


➊ کنترل کامل بر روی ویژگی‌ها : شما می‌توانید مشخص کنید که آیا یک ویژگی قابل خواندن، نوشتن یا حذف شدن است یا خیر.

➋ تعریف getter و setter : می‌توانید فانکشنالیتی کاستوم خودتون رو برای خواندن (getter) و نوشتن (setter) مقدار یک ویژگی تعریف کنید. این به شما اجازه می‌دهد تا عملیات پیچیده‌تری را قبل یا بعد از تغییر مقدار یک ویژگی انجام دهید.

➌ ایجاد ویژگی‌های غیر قابل تغییر : می‌توانید ویژگی‌هایی ایجاد کنید که پس از مقداردهی اولیه قابل تغییر نباشند ( در چالش قبلی از این این ویژگی استفاده شده بود ).

➍ بهینه سازی عملکرد : در برخی موارد، استفاده از Object.defineProperty می‌تواند به بهبود عملکرد کد کمک کند.

ساختار کلی Object.defineProperty

Object.defineProperty(obj, prop, descriptor);


1️⃣ obj : آبجکتی که می‌خواهید ویژگی آن را تعریف یا تغییر دهید.

2️⃣ prop : نام ویژگی‌ای که می‌خواهید تعریف کنید.

3️⃣ descriptor : یک آبجکت که ویژگی‌های مورد نظر برای ویژگی جدید را توصیف می‌کند.

در کل Object.defineProperty یک ابزار قدرتمند برای کنترل دقیق پروپرتی‌ها در جاوا اسکریپت است. با درک کامل این متد، می‌توانید کدهای تمیزتر و انعطاف‌پذیرتری بنویسید. هدف این پست صرفا معرفی این متد بود، توی پست های بعدی به صورت جزئی بخش های جزئی و حرفه ای تر این متد رو بررسی میکنیم

⚠️ ( حتما به این نکته توجه کنید که استفاده بیش از حد از Object.defineProperty می‌تواند کد را پیچیده‌تر کند. بنابراین، بهتر است از آن در مواردی استفاده کنید که واقعا نیاز به کنترل دقیق بر روی ویژگی‌های یک شیء دارید )

Channel | YouTube | Instagram
🔥1
𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد
#WhatsThat #javascript #object * متد Object.defineProperty در جاوااسکریپت چیست ؟  * #part1 یکی از روش‌های قدرتمند در جاوااسکریپت برای تعریف یا تغییر ویژگی‌های یک شیء به صورت دقیق و کنترل شده Object.defineProperty است. با استفاده از این متد، می‌توانید ویژگی‌های…
#javascript #js_trick #object


* متد Object.defineProperty در جاوااسکریپت چیست ؟  *
#part2

توی پارت قبلی به معرفی متد Object.defineProperty پرداختیم و ویژگی های کلیدی و ارگومان های مختلف این متد رو بررسی کردیم :

obj | prop | descriptor


و متوجه شدیم که با آرگومان descriptor میتونیم یسری ویژگی های جدید رو به پروپرتی خودمون اضافه کنیم تا کنترل بهتری روی پروپرتی خودمون داشته باشیم، حالا توی این پارت قراره که به صورت جزئی تر به مقادیر آرگومان descriptor بپردازیم و دونه به دونه با هم دیگه بررسی‌شان کنیم


مقادیر آرگومان descriptor 🚀

value : مقدار اولیه ویژگی.

configurable : مقدار بولینی که مشخص می‌کند آیا می‌توان ویژگی را حذف کرد یا تعریف آن را تغییر داد. 🛑🔁

enumerable : یک مقدار بولین که مشخص می‌کند آیا ویژگی در یک حلقه for...in ظاهر می‌شود یا خیر. 👁️‍🗨️

writable : یک مقدار بولین که مشخص می‌کند آیا می‌توان مقدار ویژگی را تغییر داد. 📝

get : یک تابع که بعنوان گِتِر برای پروپرتی ما عمل میکند.

set : یک تابع که به عنوان سِتِر برای پروپرتی ما عمل می‌کند.

مثال عملی :

const person = {};

Object.defineProperty(person, 'name', {
  value: 'علی',
  writable: false,
  enumerable: true,
  configurable: false
});

console.log(person.name); // خروجی: علی

person.name = 'حسن' ;


ℹ️ در این مثال، ما یک ویژگی جدید به نام name با مقدار اولیه علی به آبجکت person اضافه کردیم. همچنین مشخص کردیم که این ویژگی قابل تغییر نیست، در حلقه‌های for...in قابل مشاهده است و نمی‌توان آن را حذف کرد.

⚠️ در نتیجه خط اخر با خطا مواجه میشود زیرا ویژگی writable را برابر با false قرار دادیم و پروپرتی name قابل تغییر نیست.

💥 توی پارت بعدی که پارت پایانی هستش درمورد دو پروپرتی set و get در descriptor به صورت کامل صحبت میکنیم و به صورت جزئی به بررسی این دو ویژگی می‌پردازیم

Channel | YouTube | Instagram
🔥1