Object Methods

در جاوااسکریپت، اشیاء (Objects) یکی از پرکاربردترین ساختارهای داده هستند.
هر شیء می‌تواند شامل ویژگی‌ها (properties) و متدها (methods) باشد.
متدها در واقع همان توابعی هستند که به عنوان یک ویژگی داخل شیء ذخیره شده‌اند.

1️⃣ تعریف متد در شیء

یک متد در شیء، همانند یک property تعریف می‌شود ولی مقدار آن یک تابع است.

const person = { firstName: "Ali", lastName: "Rezai", fullName: function() { return this.firstName + " " + this.lastName; } }; console.log(person.fullName()); // "Ali Rezai"

🔹 در مثال بالا، fullName یک متد است که با استفاده از کلمه کلیدی this به ویژگی‌های شیء دسترسی دارد.

2️⃣ متد this

کلمه کلیدی this داخل متد به شیء اشاره می‌کند که متد به آن تعلق دارد.

const car = { brand: "BMW", model: "X5", info: function() { return `${this.brand} ${this.model}`; } }; console.log(car.info()); // "BMW X5"

3️⃣ متدهای آماده (Built-in) برای اشیاء

جاوااسکریپت چندین متد از پیش تعریف‌شده برای کار با اشیاء فراهم کرده است.

🔹 ()Object.keys

برمی‌گرداند: آرایه‌ای از کلیدهای شیء

const user = { name: "Sara", age: 25 }; console.log(Object.keys(user)); // ["name", "age"]

🔹 ()Object.values

برمی‌گرداند: آرایه‌ای از مقادیر شیء

const user = { name: "Sara", age: 25 }; console.log(Object.values(user)); // ["Sara", 25]

🔹 ()Object.entries

برمی‌گرداند: آرایه‌ای از [کلید، مقدار] برای هر ویژگی

const user = { name: "Sara", age: 25 }; console.log(Object.entries(user)); // [["name", "Sara"], ["age", 25]]

🔹 ()Object.assign

برای کپی یا ترکیب اشیاء استفاده می‌شود.

const obj1 = { a: 1, b: 2 }; const obj2 = { b: 3, c: 4 }; const merged = Object.assign({}, obj1, obj2); console.log(merged); // { a: 1, b: 3, c: 4 }

🔹 ()Object.freeze

شیء را فریز می‌کند؛ یعنی دیگر امکان تغییر یا اضافه/حذف ویژگی وجود ندارد.

const obj = { name: "Ali" }; Object.freeze(obj); obj.name = "Reza"; // تغییر نمی‌کند console.log(obj.name); // "Ali"

🔹 ()Object.seal

مانع اضافه یا حذف ویژگی‌ها می‌شود، اما تغییر مقادیر مجاز است.

const obj = { age: 30 }; Object.seal(obj); obj.age = 40; // قابل تغییر obj.name = "Sara"; // اضافه نمی‌شود console.log(obj); // { age: 40 }

📑 جدول خلاصه

متدمثالتوضیح
تعریف متد در شیءperson.fullName()متدی که داخل شیء تعریف می‌شود
thisthis.firstNameبه شیء صاحب متد اشاره می‌کند
Object.keys()Object.keys(obj)آرایه‌ای از کلیدهای شیء
Object.values()Object.values(obj)آرایه‌ای از مقادیر شیء
Object.entries()Object.entries(obj)آرایه‌ای از جفت‌های [کلید، مقدار]
Object.assign()Object.assign({}, o1, o2)ترکیب/کپی اشیاء
Object.freeze()Object.freeze(obj)جلوگیری از تغییر، اضافه یا حذف ویژگی
Object.seal()Object.seal(obj)مانع اضافه/حذف ویژگی؛ تغییر مقدار مجاز است