مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها

دسته : آموزش رایگان جاوا اسکریپت (JavaScript)

مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها

مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها

اشیاء (Objects) در جاوا اسکریپت از مهم‌ترین و پرکاربردترین ساختارهای داده‌ای هستند. آن‌ها به ما اجازه می‌دهند تا مجموعه‌ای از داده‌ها و رفتارها را در قالب یک واحد منظم ذخیره و مدیریت کنیم. در این مقاله، به بررسی مفاهیم پیشرفته اشیاء، شامل خصوصیات (Properties) و متدها (Methods) می‌پردازیم و نحوه استفاده از آن‌ها را با مثال‌های عملی شرح می‌دهیم.

 

ایجاد و تعریف اشیاء

در جاوا اسکریپت، اشیاء می‌توانند با استفاده از سینتکس آبجکت لیترال (Object Literal) یا سازنده‌های (Constructors) جاوا اسکریپت ایجاد شوند.

 

ایجاد اشیاء با استفاده از سینتکس آبجکت لیترال

آبجکت لیترال رایج‌ترین روش برای ایجاد اشیاء در جاوا اسکریپت است. در این روش، اشیاء با استفاده از جفت‌های کلید-مقدار تعریف می‌شوند.


const person = {
  firstName: 'John',
  lastName: 'Doe',
  age: 30
};

 

ایجاد اشیاء با استفاده از سازنده‌های جاوا اسکریپت

همچنین می‌توانید اشیاء را با استفاده از سازنده Object یا توابع سازنده (Constructor Functions) ایجاد کنید.


const person = new Object();
person.firstName = 'John';
person.lastName = 'Doe';
person.age = 30;

 

خصوصیات اشیاء

خصوصیات (Properties) در جاوا اسکریپت مقادیر مرتبط با یک شیء هستند که می‌توانند انواع مختلف داده‌ای مانند اعداد، رشته‌ها، آرایه‌ها، اشیاء دیگر یا حتی توابع باشند.

 

دسترسی به خصوصیات

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

  • نوتیشن نقطه‌ای (Dot Notation):


console.log(person.firstName); // Output: John

 

  • نوتیشن براکت (Bracket Notation):

 


console.log(person['lastName']); // Output: Doe

 

نوتیشن براکت زمانی مفید است که نام خصوصیت به صورت پویا تعیین شود یا شامل کاراکترهایی باشد که در نوتیشن نقطه‌ای پشتیبانی نمی‌شوند.

 

افزودن و تغییر خصوصیات

شما می‌توانید در هر زمان به یک شیء، خصوصیات جدید اضافه کرده یا خصوصیات موجود را تغییر دهید.


person.middleName = 'William'; // اضافه کردن خصوصیت جدید
person.age = 31; // تغییر مقدار خصوصیت موجود
console.log(person); // Output: { firstName: 'John', lastName: 'Doe', age: 31, middleName: 'William' }

 

حذف خصوصیات

خصوصیات یک شیء را می‌توان با استفاده از عملگر delete حذف کرد.


delete person.age;
console.log(person); // Output: { firstName: 'John', lastName: 'Doe', middleName: 'William' }

 

بررسی وجود یک خصوصیت

برای بررسی وجود یک خصوصیت در یک شیء، می‌توان از عملگر in یا متد hasOwnProperty() استفاده کرد.


console.log('firstName' in person); // Output: true
console.log(person.hasOwnProperty('age')); // Output: false

 

متدهای اشیاء

متدها (Methods) توابعی هستند که به عنوان خصوصیت‌های یک شیء تعریف می‌شوند. آن‌ها به ما اجازه می‌دهند تا رفتارها و عملکردهای مربوط به آن شیء را تعریف کنیم.

 

تعریف و استفاده از متدها

می‌توان متدها را در هنگام تعریف شیء یا بعداً به آن اضافه کرد.


const calculator = {
  add: function(a, b) {
    return a + b;
  },
  subtract: function(a, b) {
    return a - b;
  }
};

console.log(calculator.add(5, 3)); // Output: 8
console.log(calculator.subtract(5, 3)); // Output: 2

 

همچنین می‌توان از سینتکس جدیدتر برای تعریف متدها استفاده کرد:


const calculator = {
  add(a, b) {
    return a + b;
  },
  subtract(a, b) {
    return a - b;
  }
};

 

استفاده از this در متدها

کلمه کلیدی this به شیء جاری که متد در آن تعریف شده است اشاره دارد.


const person = {
  firstName: 'John',
  lastName: 'Doe',
  fullName() {
    return this.firstName + ' ' + this.lastName;
  }
};

console.log(person.fullName()); // Output: John Doe

 

استفاده از this به ما اجازه می‌دهد تا به خصوصیات دیگر شیء از داخل متد دسترسی داشته باشیم.

 

تعریف و مدیریت خصوصیات اشیاء

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

 

استفاده از Object.defineProperty()

با استفاده از Object.defineProperty() می‌توان ویژگی‌های یک خصوصیت را تنظیم کرد.


const person = {};

Object.defineProperty(person, 'firstName', {
  value: 'John',
  writable: false, // نمی‌توان مقدار خصوصیت را تغییر داد
  enumerable: true, // خصوصیت در حلقه‌ها قابل مشاهده است
  configurable: false // نمی‌توان خصوصیت را حذف کرد
});

console.log(person.firstName); // Output: John
person.firstName = 'Jane';
console.log(person.firstName); // Output: John (چون خصوصیت writable نیست)

 

خصوصیت با Object.defineProperties()

با استفاده از متد Object.defineProperties() می‌توان چند خصوصیت را به طور همزمان تعریف و مدیریت کرد.


const person = {};

Object.defineProperties(person, {
  firstName: {
    value: 'John',
    writable: true
  },
  lastName: {
    value: 'Doe',
    writable: true
  }
});

console.log(person.firstName); // Output: John
console.log(person.lastName); // Output: Doe

 

متدهای داخلی اشیاء

جاوا اسکریپت دارای چندین متد داخلی است که به ما اجازه می‌دهد خصوصیات و متدهای اشیاء را مدیریت کنیم.

 

Object.keys()

این متد آرایه‌ای از کلیدهای (خصوصیات) شیء را برمی‌گرداند.


const person = { firstName: 'John', lastName: 'Doe' };
console.log(Object.keys(person)); // Output: ['firstName', 'lastName']

 

Object.values()

این متد آرایه‌ای از مقادیر خصوصیات شیء را برمی‌گرداند.


console.log(Object.values(person)); // Output: ['John', 'Doe']

 

Object.entries()

این متد آرایه‌ای از جفت‌های کلید-مقدار به عنوان آرایه‌های جداگانه برمی‌گرداند.


console.log(Object.entries(person)); // Output: [['firstName', 'John'], ['lastName', 'Doe']]

 

Object.assign()

این متد یک یا چند شیء منبع را به یک شیء هدف کپی می‌کند.


const target = { a: 1 };
const source = { b: 2, c: 3 };
const returnedTarget = Object.assign(target, source);

console.log(returnedTarget); // Output: { a: 1, b: 2, c: 3 }

 

نتیجه‌گیری

اشیاء در جاوا اسکریپت ابزارهای قدرتمندی برای مدیریت داده‌ها و تعریف رفتارهای مرتبط با آن‌ها هستند. با یادگیری و استفاده از مفاهیم پیشرفته اشیاء، مانند خصوصیات و متدها، می‌توانید برنامه‌های خود را بهتر سازماندهی کنید و کدهایی پویا و انعطاف‌پذیر بنویسید. به طور خلاصه، درک عمیق از اشیاء به شما کمک می‌کند

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو

آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو

21م مرداد 1402

مطالعه بیشتر

تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها

تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها

30م مهر 1403

مطالعه بیشتر

استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی

استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی

10م آبان 1403

مطالعه بیشتر

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

2م بهمن 1402

مطالعه بیشتر

آموزش تگ‌های پیوندی و اتصالی در HTML: ایجاد لینک‌های داخلی و خارجی

آموزش تگ‌های پیوندی و اتصالی در HTML: ایجاد لینک‌های داخلی و خارجی

29م مرداد 1402

مطالعه بیشتر

استفاده از font face در CSS برای اضافه کردن فونت‌های سفارشی: راهنمای کامل

استفاده از font face در CSS برای اضافه کردن فونت‌های سفارشی: راهنمای کامل

16م آبان 1403

مطالعه بیشتر

آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای

آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای

18م شهریور 1402

مطالعه بیشتر

کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد

کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد

18م شهریور 1402

مطالعه بیشتر

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

18م شهریور 1402

مطالعه بیشتر

پارامترها و بازگشت از توابع در جاوا اسکریپت: نحوه تعریف و مدیریت خروجی‌ها

پارامترها و بازگشت از توابع در جاوا اسکریپت: نحوه تعریف و مدیریت خروجی‌ها

2م بهمن 1402

مطالعه بیشتر

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

18م شهریور 1402

مطالعه بیشتر

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

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

3م آبان 1403

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد