اشیاء (Objects) یکی از مفاهیم اساسی در جاوا اسکریپت هستند که به شما اجازه میدهند دادههای پیچیدهتری را نسبت به انواع دادههای ساده مانند اعداد و رشتهها ذخیره و مدیریت کنید. اشیاء به عنوان یک ساختار دادهای کلیدی در جاوا اسکریپت، پایه و اساس برنامهنویسی شیءگرا (Object-Oriented Programming) را فراهم میکنند. در این مقاله، به بررسی مفاهیم پایهای اشیاء، نحوهی ایجاد و استفاده از آنها، و برخی از روشهای مهم مربوط به اشیاء در جاوا اسکریپت خواهیم پرداخت.
اشیاء مجموعهای از خصوصیات (Properties) و متدها (Methods) هستند. خصوصیات اشیاء میتوانند مقادیر مختلفی را نگهداری کنند و متدها توابعی هستند که به عنوان مقادیر خصوصیات عمل میکنند. به طور کلی، اشیاء به شما این امکان را میدهند که چندین مقدار مرتبط را تحت یک نام مشترک گروهبندی کنید.
مثال ساده از تعریف یک شیء
const person = {
name: 'Ali',
age: 25,
greet: function() {
console.log('Hello, my name is ' + this.name);
}
};
در این مثال، شیء person دارای دو خصوصیت (name و age) و یک متد (greet) است.
برای دسترسی به خصوصیات و متدهای یک شیء، میتوان از دو روش نقطهای (Dot Notation) و براکت (Bracket Notation) استفاده کرد.
استفاده از نقطه برای دسترسی به خصوصیات یا متدهای یک شیء، روش رایجتری است.
console.log(person.name); // Output: Ali
console.log(person.age); // Output: 25
person.greet(); // Output: Hello, my name is Ali
روش براکت به شما اجازه میدهد که از نامهای خصوصیتهایی استفاده کنید که در قالب یک رشته هستند، یا از نامهای غیرمجاز برای شناسهها در جاوا اسکریپت استفاده کنید.
console.log(person['name']); // Output: Ali
console.log(person['age']); // Output: 25
const propName = 'name';
console.log(person[propName]); // Output: Ali
این روش برای مواقعی که نام خصوصیتها به صورت داینامیک در طول اجرای برنامه تعیین میشوند، بسیار مفید است.
یکی از ویژگیهای انعطافپذیر اشیاء در جاوا اسکریپت این است که میتوانید در هر زمان خصوصیات جدیدی به آنها اضافه کنید یا خصوصیات موجود را حذف کنید.
person.job = 'Developer';
console.log(person.job); // Output: Developer
برای حذف یک خصوصیت، میتوانید از عملگر delete استفاده کنید:
delete person.age;
console.log(person.age); // Output: undefined
برای پیمایش خصوصیات یک شیء، میتوان از حلقهی for...in استفاده کرد.
مثال: استفاده از حلقهی for...in
for (let key in person) {
console.log(key + ': ' + person[key]);
}
// Output:
// name: Ali
// greet: function() { console.log('Hello, my name is ' + this.name); }
// job: Developer
اشیاء میتوانند حاوی اشیاء دیگر به عنوان خصوصیات خود باشند، که به این اشیاء، شیءهای تو در تو میگویند.
مثال از شیء تو در تو
const student = {
name: 'Sara',
age: 22,
address: {
city: 'Tehran',
zipCode: '12345'
},
courses: ['Mathematics', 'Physics']
};
console.log(student.address.city); // Output: Tehran
console.log(student.courses[0]); // Output: Mathematics
جاوا اسکریپت دارای چندین متد داخلی برای کار با اشیاء است. در زیر به برخی از این متدها اشاره میکنیم:
این متد آرایهای از تمام کلیدهای یک شیء را برمیگرداند.
console.log(Object.keys(person)); // Output: ['name', 'greet', 'job']
این متد آرایهای از تمام مقادیر خصوصیات یک شیء را برمیگرداند.
console.log(Object.values(person)); // Output: ['Ali', function() { console.log('Hello, my name is ' + this.name); }, 'Developer']
این متد آرایهای از آرایههای جفت کلید-مقدار را برمیگرداند.
console.log(Object.entries(person));
// Output: [['name', 'Ali'], ['greet', function() { console.log('Hello, my name is ' + this.name); }], ['job', 'Developer']]
در جاوا اسکریپت، مقایسه مستقیم دو شیء به وسیلهی == یا ===، فقط بررسی میکند که آیا آنها به یک مکان در حافظه اشاره میکنند یا خیر. برای بررسی تساوی دو شیء، باید تمام خصوصیات آنها را با یکدیگر مقایسه کنید.
مثال: مقایسه اشیاء
const obj1 = { a: 1 };
const obj2 = { a: 1 };
console.log(obj1 === obj2); // Output: false
const obj3 = obj1;
console.log(obj1 === obj3); // Output: true
اشیاء (Objects) یکی از پایههای اساسی جاوا اسکریپت هستند که به شما امکان میدهند دادههای پیچیدهتری را مدیریت کنید و برنامههای قدرتمندتری بنویسید. با یادگیری نحوهی تعریف، دسترسی، اضافه و حذف خصوصیات، و همچنین استفاده از متدهای مختلف برای کار با اشیاء، میتوانید از قدرت کامل این ساختار دادهای در جاوا اسکریپت بهرهمند شوید. آگاهی از نحوهی مدیریت اشیاء و استفادهی صحیح از آنها، مهارتهای برنامهنویسی شما را به سطح بالاتری خواهد رساند.
نظری یافت نشد
اصول پایه React.js: آشنایی با کامپوننتها، وضعیت و رندرینگ
28م شهریور 1402
مطالعه بیشتر
آموزش ترانزیشنها و انیمیشنهای نرم با CSS: ایجاد افکتهای پویا و واکنشگرا
10م شهریور 1402
مطالعه بیشتر
آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایلها
12م آبان 1403
مطالعه بیشتر
معرفی DOM و اصول آن در جاوا اسکریپت: راهنمای جامع برای مبتدیان
1م آبان 1403
مطالعه بیشتر
آموزش ایجاد، دسترسی و اصلاح آرایهها در جاوا اسکریپت: راهنمای کامل
4م مهر 1403
مطالعه بیشتر
عملگرها و عبارات محاسباتی در جاوا اسکریپت: نحوه استفاده و کاربردهای مختلف
28م شهریور 1402
مطالعه بیشتر
مقدمهای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on
28م شهریور 1402
مطالعه بیشتر
مفهوم برنامهنویسی همزمان و ناهمزمان در جاوا اسکریپت: تفاوتها، مثالها و کاربردها
29م مهر 1403
مطالعه بیشتر
مقدمهای به template و دیتابایندینگ در Vue.js: نحوه مدیریت دادهها و رندرینگ پویا
28م شهریور 1402
مطالعه بیشتر
آموزش توسعه و مدیریت پروژههای بزرگ در جاوا اسکریپت: آشنایی با ابزارها و فریمورکهای کاربردی
4م آبان 1403
مطالعه بیشتر
استفاده از visibility و opacity در CSS برای مخفیسازی عناصر: راهنمای کامل و کاربردی
11م آبان 1403
مطالعه بیشتر
آموزش Responsive Design با استفاده از Media Queries: طراحی واکنشگرا برای تمامی دستگاهها
10م شهریور 1402
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد