### شرح مفصل لأساليب الكائنات في JavaScript
تعتبر الكائنات (Objects) في JavaScript من الأساسيات التي لا غنى عنها، حيث تستخدم لتنظيم البيانات بطريقة منطقية وسهلة الاستخدام. تحتوي الكائنات على خصائص (Properties) وطرق (Methods) تعزز من وظائفها. في هذا المقال، سنستعرض أهم أساليب الكائنات في JavaScript مع أمثلة متعددة لتوضيح كيفية استخدامها.
#### 1. تعريف الكائنات
قبل الغوص في أساليب الكائنات، دعونا نستعرض كيفية تعريف كائن بسيط:
let person = {
name: "Ali",
age: 30,
greet: function() {
console.log("Hello, my name is " + this.name);
}
};
في المثال أعلاه، `person` هو كائن يحتوي على خصائص مثل `name` و`age`، بالإضافة إلى طريقة `greet`.
#### 2. Object.keys()
تُستخدم هذه الطريقة للحصول على مصفوفة تحتوي على أسماء جميع الخصائص القابلة للتعداد في الكائن.
let car = {
brand: "Toyota",
model: "Corolla",
year: 2020
};
let keys = Object.keys(car);
console.log(keys); // Output: ["brand", "model", "year"]
#### 3. Object.values()
تُستخدم للحصول على مصفوفة تحتوي على قيم جميع [شركة برمجة مصرية] الخصائص القابلة للتعداد في الكائن.
let values = Object.values(car);
console.log(values); // Output: ["Toyota", "Corolla", 2020]
#### 4. Object.entries() [شركة برمجة مصرية]
تُعيد مصفوفة تحتوي على مصفوفات فرعية، كل واحدة منها تحتوي على زوج من اسم الخاصية وقيمتها.
let entries = Object.entries(car);
console.log(entries);
// Output: [["brand", "Toyota"], ["model", "Corolla"], ["year", 2020]]
#### 5. Object.assign()
تُستخدم لنسخ قيم جميع الخصائص القابلة للتعداد من كائن واحد أو أكثر إلى كائن الهدف. وتُعيد الكائن الهدف.
let target = {};
let source = { a: 1, b: 2 };
Object.assign(target, source);
console.log(target); // Output: { a: 1, b: 2 }
#### 6. Object.freeze()
تجمّد الكائن، مما يعني أنه لا يمكن تعديل الخصائص الموجودة، ولا يمكن إضافة خصائص جديدة.
let user = {
username: "john_doe"
};
Object.freeze(user);
user.username = "jane_doe"; // هذا التغيير لن ينجح
console.log(user.username); // Output: "john_doe"
#### 7. Object.seal()
تمنع إضافة خصائص جديدة إلى الكائن ولكن تسمح بتعديل الخصائص الحالية.
let book = {
title: "JavaScript Basics"
};
Object.seal(book);
book.title = "Advanced JavaScript"; // هذا التغيير مسموح
book.author = "John Smith"; // هذا التغيير لن ينجح
console.log(book); // Output: { title: "Advanced JavaScript" }
#### 8. Object.prototype.hasOwnProperty()
تُستخدم للتحقق مما إذا كان الكائن يحتوي على خاصية معينة كخاصية خاصة به، وليس موروثة.
console.log(car.hasOwnProperty('brand')); // Output: true
console.log(car.hasOwnProperty('toString')); // Output: false
### الخلاصة
تعتبر أساليب الكائنات في JavaScript أدوات قوية وضرورية للتعامل مع البيانات وتنظيمها بشكل فعال. باستخدام هذه الأساليب، يمكنك الوصول إلى خصائص الكائنات، ونسخها، وتجميدها، أو حتى التأكد من وجود خصائص معينة. من خلال فهم هذه الأساليب واستخدامها بشكل صحيح، يمكنك تعزيز كفاءة برامجك وتسهيل إدارتها.
