اشیاء (Objects) در جاوا اسکریپت
اشیاء در جاوا اسکریپت یکی از مهمترین و پرکاربردترین ساختارهای دادهای هستند که به ما این امکان را میدهند که دادهها را بهصورت جفتهای کلید-مقدار ذخیره کنیم. این ساختار به ما کمک میکند تا دادهها را به شکلی ساختاریافته و خوانا سازماندهی کنیم. اشیاء در جاوا اسکریپت میتوانند شامل ویژگیها (properties) و متدها (methods) باشند.
۱. تعریف شیء
یک شیء در جاوا اسکریپت میتواند از چندین ویژگی تشکیل شود که هر ویژگی دارای یک نام (کلید) و یک مقدار است. این مقادیر میتوانند انواع مختلفی از دادهها مانند اعداد، رشتهها، آرایهها یا حتی توابع باشند.
ساختار:
key1: value1,
key2: value2,
key3: value3,
...
};
مثال:
name: "علی",
age: 30,
city: "تهران"
};
console.log(person); // خروجی: { name: "علی", age: 30, city: "تهران" }
۲. دسترسی به ویژگیهای شیء
برای دسترسی به ویژگیهای یک شیء، میتوان از دو روش استفاده کرد: استفاده از نقطه (.) یا استفاده از براکتهای مربعی ([]).
1.2. استفاده از نقطه (Dot Notation)
این روش معمولترین روش دسترسی به ویژگیهای شیء است.
مثال:
name: "علی",
age: 30
};
console.log(person.name); // خروجی: علی
console.log(person.age); // خروجی: 30
۲.۲. استفاده از براکتها (Bracket Notation)
در این روش، نام ویژگی بهصورت یک رشته (string) داخل براکتها نوشته میشود. این روش در زمانی که نام ویژگی متغیر باشد یا شامل فاصله یا کاراکترهای خاص باشد، مفید است.
مثال:
name: "علی",
age: 30
};
console.log(person["name"]); // خروجی: علی
console.log(person["age"]); // خروجی: 30
۳. اضافه کردن یا تغییر ویژگیها
برای اضافه کردن ویژگی جدید به یک شیء یا تغییر مقدار یک ویژگی موجود، میتوان از هر دو روش (نقطه یا براکتها) استفاده کرد.
مثال:
name: "علی",
age: 30
};
// اضافه کردن ویژگی جدید
person.city = "تهران";
// تغییر مقدار ویژگی
person.age = 31;
console.log(person); // خروجی: { name: "علی", age: 31, city: "تهران" }
۴. حذف ویژگیهای شیء
برای حذف ویژگیهای یک شیء میتوان از دستور delete استفاده کرد.
مثال:
name: "علی",
age: 30,
city: "تهران"
};
delete person.city;
console.log(person); // خروجی: { name: "علی", age: 30 }
در این مثال، ویژگی city از شیء person حذف شده است.
۵. متدها در اشیاء
در جاوا اسکریپت، یک شیء میتواند شامل متدها نیز باشد. متدها در واقع همان توابع هستند که بهعنوان ویژگیهای شیء تعریف میشوند.
ساختار:
methodName: function() {
// کدهای تابع
}
};
مثال:
name: "علی",
age: 30,
greet: function() {
console.log("سلام، نام من " + this.name + " است.");
}
};
person.greet(); // خروجی: سلام، نام من علی است.
در این مثال، شیء person دارای یک متد به نام greet است که پیامی را چاپ میکند.
۶. استفاده از کلمه کلیدی this
کلمه کلیدی this در داخل متدهای یک شیء به خود شیء اشاره میکند. میتوان از this برای دسترسی به ویژگیها و متدهای شیء استفاده کرد.
مثال:
name: "علی",
age: 30,
greet: function() {
console.log("سلام، نام من " + this.name + " است.");
}
};
person.greet(); // خروجی: سلام، نام من علی است.
۷. اشیاء تو در تو (Nested Objects)
در جاوا اسکریپت، اشیاء میتوانند درون یکدیگر قرار گیرند. این ویژگی به ما این امکان را میدهد که ساختارهای داده پیچیدهتری بسازیم.
مثال:
name: "علی",
address: {
city: "تهران",
country: "ایران"
}
};
console.log(person.address.city); // خروجی: تهران
در این مثال، شیء person دارای یک ویژگی به نام address است که خود یک شیء دیگر است.
۸. شیءهای پیشساخته در جاوا اسکریپت
جاوا اسکریپت تعدادی شیء پیشساخته مانند Math, Date, و JSON دارد که میتوان از آنها برای انجام عملیات خاص استفاده کرد.
مثال: استفاده از شیء Math
console.log(number); // خروجی: 30
مثال: استفاده از شیء Date
console.log(today); // خروجی: تاریخ و زمان فعلی
۹. شبیهسازی کلاسها با اشیاء
جاوا اسکریپت برخلاف زبانهای شیگرا مانند Java یا ++C، کلاسها را بهطور پیشفرض ندارد، اما با استفاده از اشیاء و متدها میتوان شبیهسازی کلاسها را انجام داد.
مثال:
this.name = name;
this.age = age;
this.greet = function() {
console.log("سلام، نام من " + this.name + " است.");
};
}
let person1 = new Person("علی", 30);
person1.greet(); // خروجی: سلام، نام من علی است.
در این مثال، با استفاده از تابع سازنده (constructor function)، یک شیء جدید از نوع Person ساخته شده است.
۱۰. متدهای Object در جاوا اسکریپت
جاوا اسکریپت چندین متد پیشساخته برای کار با اشیاء فراهم کرده است.
1.10. ()Object.keys
این متد آرایهای از کلیدهای شیء برمیگرداند.
مثال:
console.log(Object.keys(person)); // خروجی: ["name", "age"]
2.10. ()Object.values
این متد آرایهای از مقادیر ویژگیهای شیء برمیگرداند.
مثال:
console.log(Object.values(person)); // خروجی: ["علی", 30]
3.10. ()Object.entries
این متد آرایهای از جفتهای کلید-مقدار شیء برمیگرداند.
مثال:
console.log(Object.entries(person)); // خروجی: [["name", "علی"], ["age", 30]]
نتیجهگیری
اشیاء در جاوا اسکریپت ابزارهایی قدرتمند برای سازماندهی دادهها هستند. با استفاده از اشیاء میتوانیم دادهها را بهصورت جفتهای کلید-مقدار ذخیره کرده و از آنها در برنامههای خود بهرهبرداری کنیم. اشیاء میتوانند ویژگیها و متدهای مختلفی داشته باشند و به راحتی با استفاده از this به ویژگیهای خود دسترسی پیدا کنند. همچنین، استفاده از اشیاء برای شبیهسازی کلاسها و ساختارهای پیچیدهتر، در توسعه برنامههای بزرگ وب بسیار مفید است.
