در جاوا اسکریپت، اشیاء (Objects) یکی از مفاهیم اساسی هستند که به برنامهنویسان این امکان را میدهند تا دادهها و عملکردها را در یک واحد منطقی گروهبندی کنند. اشیاء به صورت کلید-مقدار (Key-Value) کار میکنند و از طریق آنها میتوان اطلاعات را به راحتی مدیریت کرد و به آنها دسترسی داشت. در این مقاله، به مفاهیم اصلی اشیا در جاوا اسکریپت، روشهای ایجاد و استفاده از اشیاء و کاربردهای متنوع آنها میپردازیم. همچنین پیشنهاد میکنیم آموزش توابع در جاوا اسکریپت را نیز مطالعه نمایید.
اشیا در جاوا اسکریپت
اشیا در جاوا اسکریپت یک نوع داده هستند که اطلاعات را به صورت جفتی از کلید و مقدار ذخیره میکنند. هر کلید یک String است که به مقدار متناظر با آن ارتباط دارد. به عبارت دیگر، اشیاء به برنامهنویسان این امکان را میدهند تا یک گروه از دادهها و توابع را در یک جا گردآوری کنند.
ایجاد اشیاء
استفاده از شیء (Object Literal)
روش ابتدایی برای ایجاد یک شی، استفاده از شی لیترال (Object Literal) است. در این روش، اشیا با استفاده از آکولادهای دور یک مجموعه از کلیدها و مقادیر ایجاد میشوند. مثال:
let person = {
name: "آرمان",
age: 30,
city: "تهران",
introduce: function() {
console.log("سلام، من " + this.name + " هستم و " + this.age + " سال دارم.");
}
};
person.introduce(); // خروجی: سلام، من آرمان هستم و 30 سال دارم.
در این مثال، یک شیء با نام person ایجاد شده است که دارای کلیدها و مقادیر مختلفی از جمله نام، سن و شهر است. همچنین، یک تابع به نام introduce نیز به شی اضافه شده است.
ساخت شیء با استفاده از Constructor Function
یک روش دیگر برای ایجاد اشیاء، استفاده از توابع سازنده (Constructor Functions) است. توابع سازنده برای ایجاد اشیاء از کلمه کلیدی new
استفاده میکنند. مثال:
// تعریف تابع سازنده
function person(name, age, city) {
this.name = name;
this.age = age;
this.city = city;
this.introduce = function() {
console.log("سلام، من " + this.name + " هستم و " + this.age + " سال دارم.");
};
}
// ایجاد یک شیء با استفاده از تابع سازنده
let person1 = new person("آرمان", 30, "تهران");
person1.introduce(); // خروجی: سلام، من آرمان هستم و 30 سال دارم.
در این مثال، یک تابع سازنده به نام person تعریف شده است که با استفاده از this
، ویژگیهای مختلف شیء را تعیین میکند. سپس با استفاده از new
، یک شیء جدید از این تابع سازنده ایجاد میشود.
دسترسی به ویژگیها و توابع اشیاء
برای دسترسی به ویژگیها و توابع یک شیء، از عملگر دات یا .
استفاده میشود. مثال:
let person1_name = person1.name;
console.log(person1_name); // خروجی: آرمان
person1.introduce(); // خروجی: سلام، من آرمان هستم و 30 سال دارم.
همچنین، میتوان با استفاده از عملگر []
نیز به ویژگیها دسترسی داشت. مثال:
let person1_name = person1["name"];
console.log(person1_name); // خروجی: آرمان
تغییر و اضافه کردن ویژگیها
برای تغییر یک ویژگی در یک شیء، میتوان به صورت مستقیم مقدار جدید را به آن نسبت داد. مثال:
person1.age = 31;
console.log(person1.age); // خروجی: 31
همچنین، میتوان با استفاده از عملگر []
نیز مقدار یک ویژگی را تغییر داد. مثال:
person1["age"] = 32;
console.log(person1.age); // خروجی: 32
برای اضافه کردن یک ویژگی جدید به یک شیء نیز، میتوان به صورت مستقیم مقدار جدید را نسبت داد. مثال:
person1.job = "برنامهنویس";
console.log(person1.job); // خروجی: برنامهنویس
حذف ویژگیها در جاوا اسکریپت
برای حذف یک ویژگی از یک شیء، از عبارت delete
استفاده میشود. مثال:
delete person1.job;
console.log(person1.job); // خروجی: undefined
لوپ در اشیاء
با استفاده از لوپها میتوان بر روی ویژگیهای یک شیء یا همهی اشیاء یک آرایه چرخشی انجام داد. مثال:
for (let key in person1) {
console.log(key + ": " + person1[key]);
}
استفاده از Object Methods
کلاس Object
در جاوا اسکریپت دارای متدهای مفیدی برای کار با اشیاء است. به عنوان مثال:
Object.keys(obj)
این متد تمام کلیدهای شیء را به صورت یک آرایه باز میگرداند.
let keys = Object.keys(person1);
console.log(keys); // خروجی: ["نام", "سن", "شهر", "introduce"]
Object.values(obj)
متد values
تمام مقادیر شیء را به صورت یک آرایه باز میگرداند.
let values = Object.values(person1);
console.log(values); // خروجی: ["آرمان", 32, "تهران", [Function: introduce]]
Object.entries(obj)
این متد تمام جفتهای کلید و مقدار شیء را به صورت یک آرایه باز میگرداند
let pairs = Object.entries(person1);
console.log(pairs);
/*
خروجی:
[
["نام", "آرمان"],
["سن", 32],
["شهر", "تهران"],
["introduce", [Function: introduce]]
]
*/
Object Destructuring
در جاوا اسکریپت، میتوان از روشی به نام “Destructuring” برای استخراج مقادیر مستقیماً از یک شیء استفاده کرد. این روش به برنامهنویس این امکان را میدهد که به سادگی به اطلاعات مورد نیاز دسترسی پیدا کند. مثال:
let { name, age, city } = person1;
console.log(name); // خروجی: آرمان
console.log(age); // خروجی: 32
console.log(city); // خروجی: تهران
استفاده از Object.create()
متد Object.create()
به برنامهنویس این امکان را میدهد تا یک شیء جدید را با پروتوتایپ (Prototype) مشخص شده ایجاد کند. این متد زمانی مفید است که نیاز به ایجاد یک شیء با ویژگیهای پیشفرض و یا به اصطلاح والد باشد.
let parent = {
degree: "لیسانس"
};
let child = Object.create(parent);
child.name = "آرمان";
child.age = 32;
console.log(child.name); // خروجی: آرمان
console.log(child.degree); // خروجی: لیسانس
Object vs. Map
در جاوا اسکریپت، Object
و Map
دو نوع ساختار دادهای هستند که برای ذخیره و مدیریت اطلاعات استفاده میشوند. هرکدام ویژگیها و کاربردهای خود را دارند.
اشیاء (Objects)
Object
به صورت یک مجموعه از کلیدها و مقادیر عمل میکند.- اشیاء مناسب برای نمایش دادههایی هستند که متعلق به یک شیء (Object) خاص هستند و به اطلاعات مربوط به ویژگیهای مختلف نیاز داریم.
- برای اشیاء، مقادیر نیز میتوانند توابع باشند.
let new_person = {
name: "آرمان",
age: 32,
introduce: function() {
console.log("سلام، من " + this.name + " هستم و " + this.age + " سال دارم.");
}
};
نقشهها (Maps)
Map
به صورت یک مجموعه از جفتهای کلید و مقدار عمل میکند.- نقشهها مناسب برای ذخیره اطلاعاتی هستند که نیاز به تطبیق و ارتباط میان کلید و مقدار دارند.
- در نقشهها، هر کلید میتواند نوعهای مختلف داشته باشد و این امکان را فراهم میکند که اطلاعات با دقت بیشتری مدیریت شوند.
let person_map = new Map();
person_map.set("name", "آرمان");
person_map.set("age", 32);
console.log(person_map)
خلاصه اشیا در جاوا اسکریپت
اشیا در جاوا اسکریپت یکی از مفاهیم کلیدی هستند که به برنامهنویسان این امکان را میدهند تا دادهها و توابع را در یک واحد منطقی گروهبندی کنند. از روشهای مختلفی برای ایجاد و مدیریت اشیاء استفاده میشود و این اشیاء میتوانند تنها داده باشند یا شامل توابع نیز باشند. به عنوان برنامهنویس، مهم است که با استفاده از اشیاء، کد خود را سازماندهی کرده و اطلاعات را به بهترین شکل ممکن مدیریت کنید