مرجع شی (Object Reference)
این صفحه مثل برگه تقلب است. فهرست «روش ها (Methods)» و «ویژگی ها (Properties)»ی شیء را کنار هم می بینی. هرکدام کاری می کنند؛ مثل کپی، قفل، یا لیست کردن کلیدها.
روش ها و ویژگی های مهم شیء
چند مورد پرکاربرد را با مثال کوتاه می بینیم: assign، create، entries، fromEntries، keys، values، و groupBy.
Object.assign()؛ کپی ویژگی ها
«assign» ویژگی های شیء منبع را به هدف کپی می کند. مثل قرض دادن برچسب های دفتر.
const person1 = {
firstName: "John",
lastName: "Doe"
};
const person2 = {
lastName: "Smith"
};
Object.assign(person1, person2);
Object.create()؛ ساخت از الگو
«create» شیء جدیدی می سازد که از شیء داده شده الگو می گیرد. مثل برگه کپی شده از فرم.
const base = {
role: "student"
};
const ali = Object.create(base);
ali.name = "Ali";
Object.entries() و Object.values() و Object.keys()
«entries» جفت های کلید/مقدار می دهد؛ «values» فقط مقدارها؛ «keys» فقط کلیدها. مثل فهرست حضور و غیاب.
const scores = {
math: 18,
physics: 17
};
const pairs = Object.entries(scores);
const vals = Object.values(scores);
const ks = Object.keys(scores);
Object.fromEntries()؛ ساخت شیء از لیست
«fromEntries» از لیست جفت ها یک شیء می سازد. مثل چسباندن کارت های اطلاعات روی یک فرم.
const pairs = [
["name", "Sara"],
["grade", 12]
];
const student = Object.fromEntries(pairs);
Object.groupBy()؛ گروه بندی بر اساس تابع
«groupBy» عناصر را براساس خروجی یک تابع دسته بندی می کند. مثل جداکردن نمره ها به «قبول» و «نیاز به تلاش».
const items = [
{ name: "pen", price: 10 },
{ name: "book", price: 40 },
{ name: "ruler", price: 5 }
];
function byPrice(it) {
return it.price >= 10 ? "ok" : "low";
}
const grouped = Object.groupBy(items, byPrice);
روش های محافظتی و بررسی وضعیت
برای قفل کردن تغییرات از «seal»، «freeze»، و «preventExtensions» استفاده کن. برای چک کردن، «isSealed»، «isFrozen»، و «isExtensible» هستند.
const obj = {
a: 1
};
Object.seal(obj);
const sealed = Object.isSealed(obj);
Object.freeze(obj);
const frozen = Object.isFrozen(obj);
گام های تمرینی
- یک شیء بساز و با keys و values بررسی کن.
- با assign مقدارها را ادغام کن و نتیجه را ببین.
- یکی را seal، یکی را freeze کن و تفاوت را تست کن.
نکته: برخی روش ها روی آرایه ها هم کار می کنند، چون آرایه هم شیء است.
برای مطالعه عمیق تر به محافظت از شی و گیرنده/گذارنده سر بزن. «مرجع شی» را هم به عنوان راهنمای سریع نگه دار.
جمع بندی سریع
- assign ادغام می کند؛ create با الگو می سازد.
- entries، keys، values نمایش داده ها را راحت می کند.
- fromEntries لیست را به شیء برمی گرداند.
- groupBy داده ها را گروه بندی می کند.
- seal و freeze برای قفل کردن تغییرات اند.