17- دروس جافا سكربت – JS Object Methods

### مقدمة

تعتبر الكائنات (Objects) في JavaScript واحدة من الأساسيات التي تُستخدم لتخزين وتنظيم البيانات. توفر JavaScript مجموعة من الطرق (methods) التي يمكن استخدامها للتعامل مع هذه الكائنات، مما يجعل من السهل الوصول إلى البيانات المخزنة [شركة برمجة مصرية] وتعديلها. في هذا المقال، سنستعرض مجموعة من الطرق الأساسية التي يمكن استخدامها مع الكائنات في JavaScript، مع تقديم أمثلة متعددة لكل منها.

### 1. Object.keys()

طريقة `Object.keys()` تُستخدم للحصول على مصفوفة تحتوي على جميع المفاتيح (keys) الخاصة بالكائن. هذا يُعد مفيدًا للغاية عندما نحتاج إلى العمل مع المفاتيح فقط.

const person = {
  name: "John",
  age: 30,
  profession: "Engineer"
};

const keys = Object.keys(person);
console.log(keys); // ["name", "age", "profession"]

### 2. Object.values()

على غرار `Object.keys()`, تُستخدم طريقة `Object.values()` للحصول على مصفوفة تحتوي على جميع القيم (values) الخاصة بالكائن.

const person = {
  name: "John",
  age: 30,
  profession: "Engineer"
};

const values = Object.values(person);
console.log(values); // ["John", 30, "Engineer"]

### 3. Object.entries()

تقوم طريقة `Object.entries()` بإرجاع مصفوفة من المصفوفات الفرعية، كل مصفوفة فرعية تحتوي على زوج من المفتاح والقيمة. هذا يُعد مفيدًا عند الحاجة إلى التعامل مع المفاتيح والقيم معًا.

const person = {
  name: "John",
  age: 30,
  profession: "Engineer"
};

const entries = Object.entries(person);
console.log(entries); // [["name", "John"], ["age", 30], ["profession", "Engineer"]]

### 4. Object.assign()

تُستخدم طريقة `Object.assign()` لنسخ القيم من كائن واحد أو أكثر إلى كائن مستهدف. يمكن استخدامها لدمج كائنات متعددة في كائن واحد.

const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };

Object.assign(target, source1, source2);
console.log(target); // { a: 1, b: 2, c: 3 }

### 5. Object.freeze()

تقوم طريقة `Object.freeze()` بتجميد الكائن، مما يعني عدم إمكانية تعديل خصائصه أو إضافة خصائص جديدة إليه.

const person = {
  name: "John",
  age: 30
};

Object.freeze(person);
person.age = 31; // لن يتم التغيير
console.log(person.age); // 30

### 6. Object.seal()

تُستخدم طريقة `Object.seal()` لمنع إضافة خصائص جديدة إلى الكائن، ولكنها تسمح بتعديل الخصائص الحالية.

const person = {
  name: "John",
  age: 30
};

Object.seal(person);
person.age = 31; // سيتم التغيير
person.profession = "Engineer"; // لن يتم الإضافة
console.log(person); // { name: "John", age: 31 }

### 7. Object.create()

تسمح طريقة `Object.create()` بإنشاء كائن جديد باستخدام كائن موجود كنموذج (prototype). هذا يُعد مفيدًا لإنشاء كائنات ذات خصائص موروثة.

const personProto = {
  greet() {
    console.log(`Hello, my name is ${this.name}`);
  }
};

const person = Object.create(personProto);
person.name = "John";
person.greet(); // Hello, my name is John

### خاتمة

تعد طرق الكائنات في JavaScript أدوات قوية لإدارة البيانات داخل الكائنات وتسهيل العمليات المختلفة عليها. من خلال فهم واستخدام هذه [شركة برمجة مصرية] الطرق بشكل فعّال، يمكن للمطورين بناء تطبيقات أكثر تعقيدًا وكفاءة. نأمل أن تكون هذه الأمثلة قد ساعدت في توضيح كيفية استخدام كل طريقة من هذه الطرق.