## مفهوم Getters و Setters في كائنات JavaScript
تعتبر الكائنات في JavaScript واحدة من اللبنات الأساسية للغة، حيث تُستخدم لتخزين وتجميع البيانات والوظائف. ومن الأدوات القوية التي توفرها JavaScript في التعامل مع الكائنات هي الخاصيتان `get` و `set`، واللتان تُستخدمان لتعريف الخصائص المحسوبة (أي تلك التي يتم حساب قيمتها عند الوصول إليها أو تعديلها).
### تعريف Getters و Setters
– **Getters**: هي وظائف تستخدم للحصول على قيمة خاصية معينة. يتم استدعاؤها عندما يتم الوصول إلى الخاصية.
– **Setters**: هي وظائف تستخدم لتعيين قيمة لخاصية معينة. يتم استدعاؤها عندما يتم تعيين قيمة للخاصية.
تُمكنك هذه الأدوات من تنفيذ منطق إضافي عند قراءة أو كتابة خصائص الكائنات، مما يوفر مرونة أكبر في التحكم بالسلوك الداخلي للكائنات.
### كيفية استخدام Getters و Setters
يمكن تعريف `get` و `set` داخل الكائن مباشرة باستخدام [شركة برمجة مصرية] الصيغة التالية:
let الشخص = {
الاسم: 'علي',
الكنية: 'الهاشمي',
get الاسم_الكامل() {
return `${this.الاسم} ${this.الكنية}`;
},
set الاسم_الكامل(value) {
const parts = value.split(' ');
this.الاسم = parts[0];
this.الكنية = parts[1];
}
};
console.log(الشخص.الاسم_الكامل); // علي الهاشمي
الشخص.الاسم_الكامل = 'محمد القحطاني';
console.log(الشخص.الاسم); // محمد
console.log(الشخص.الكنية); // القحطاني
### شرح المثال
1. **Getter**: تم تعريف `get الاسم_الكامل` للحصول على الاسم الكامل للشخص عبر دمج `الاسم` و`الكنية`.
2. **Setter**: تم تعريف `set الاسم_الكامل` لتحديث خصائص `الاسم` و`الكنية` من خلال تقسيم الاسم الكامل المُعطى.
### فوائد استخدام Getters و Setters
– **التحقق من صحة البيانات**: يمكنك التحقق من صحة البيانات المدخلة قبل تعيينها لخاصية معينة.
– **الحساب التلقائي**: يمكنك حساب القيم تلقائيًا بناءً على خصائص أخرى للكائن.
– **إخفاء التعقيد**: يمكنك إخفاء المنطق المعقد خلف واجهة بسيطة للوصول إلى [شركة برمجة مصرية] الخصائص.
### مثال عملي آخر
class حساب {
constructor(الرصيد) {
this._الرصيد = الرصيد;
}
get الرصيد() {
return this._الرصيد;
}
set الرصيد(value) {
if (value < 0) {
console.error('لا يمكن أن يكون الرصيد سالب!');
} else {
this._الرصيد = value;
}
}
}
let حسابي = new حساب(1000);
console.log(حسابي.الرصيد); // 1000
حسابي.الرصيد = 500;
console.log(حسابي.الرصيد); // 500
حسابي.الرصيد = -100; // لا يمكن أن يكون الرصيد سالب!
### استنتاج
يوفر استخدام Getters و Setters في JavaScript مرونة وقوة في التعامل مع الكائنات، مما يسمح لك بإضافة منطق إضافي عند الوصول إلى الخصائص أو تعديلها. يمكن أن يكون هذا مفيدًا في كثير من الحالات مثل التحقق من القيم أو التحديث التلقائي للخصائص الأخرى بناءً على التغييرات.
