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

دسته : آموزش رایگان جاوا اسکریپت (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 }

 

نتیجه‌گیری

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

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

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

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

2م بهمن 1402

مطالعه بیشتر

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها

1م آبان 1403

مطالعه بیشتر

آموزش CSS Transform و Transition: تبدیل‌ها و ایجاد تغییرات ظاهری پویا

آموزش CSS Transform و Transition: تبدیل‌ها و ایجاد تغییرات ظاهری پویا

10م شهریور 1402

مطالعه بیشتر

آموزش کامل ویژگی background در CSS: تنظیمات پس‌زمینه برای طراحی وب راهنمای جامع

آموزش کامل ویژگی background در CSS: تنظیمات پس‌زمینه برای طراحی وب راهنمای جامع

5م شهریور 1402

مطالعه بیشتر

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

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

10م شهریور 1402

مطالعه بیشتر

استفاده از calc در CSS: محاسبات پویا برای طراحی‌های منعطف

استفاده از calc در CSS: محاسبات پویا برای طراحی‌های منعطف

12م آبان 1403

مطالعه بیشتر

آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایل‌ها

آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایل‌ها

12م آبان 1403

مطالعه بیشتر

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

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

29م مرداد 1402

مطالعه بیشتر

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

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

6م شهریور 1402

مطالعه بیشتر

پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of

پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of

4م مهر 1403

مطالعه بیشتر

آموزش استفاده از جدول در HTML: طراحی و استایل‌دهی جدول‌های ساده و پیشرفته

آموزش استفاده از جدول در HTML: طراحی و استایل‌دهی جدول‌های ساده و پیشرفته

21م مرداد 1402

مطالعه بیشتر

معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن

معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن

28م شهریور 1402

مطالعه بیشتر

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