جافاسكربتالدوال الثابتة
- مفهوم الدوال الثابتة
- تعريف دالة ثابتة في الكلاس
- إستدعاء دالة ثابتة من دالة ثابتة
- إستدعاء دالة ثابتة في الكونستركتور
مفهوم الدوال الثابتة
الدالة الثابتة ( Static Method ) هي دالة تابعة لكلاس محدد و يمكن الوصول لها بشكل مباشر منه فقط.
لا يمكن الوصول للدالة الثابتة من خلال كائن تم إنشاؤه من الكلاس، بل فقط من الكلاس نفسه.
عادة ما يتم استخدام الدوال الثابتة لتنظيم الكود، فمثلاً في دروس سابقة تعرفنا الكلاس Math الذي يحتوي على العديد من الدوال التي تستخدم في العمليات الرياضية و الحسابية و تعرفنا أيضاً على الكلاس Array الذي يحتوي على دوال خاصة بالمصفوفات و غيرها.
في هذا الدرس ستتعلم كيفية تعريف دوال ثابتة في الكلاس طرق الوصول إليها خطوة خطوة.
تعريف دالة ثابتة في الكلاس
يمكنك استخدام الكلمة المفتاحية static لتعريف الدالة كدالة ثابتة في الكلاس.
في المثال التالي قمنا بتعريف كلاس يحتوي على دالة ثابتة إسمها calculateSpeed() و التي يمكن استخدامها لحساب السرعة ( distance ).
عند استدعاء هذه الدالة يجب إعطاءها عددين:
- الأول يمثل المسافة ( distance ).
- الثاني يمثل الوقت ( time ).
في النهاية، السرعة يتم حسابها من خلال قسمة المسافة على الوقت.
مثال
إستدعاء دالة ثابتة من دالة ثابتة
في حال أردت استدعاء دالة ثابتة من دالة ثابتة أخرى فيجب أن تذكر إسم الكلاس الموجودة فيه حتى و لو كانا موجودتين في الكلاس نفسه.
في المثال التالي قمنا بتعريف كلاس يحتوي على دالة ثابتة إسمها calculateSpeed() مهمتها حساب قيمة السرعة، و دالة ثابتة أخرى مبنية عليها إسمها printSpeed() مهمتها حساب قيمة السرعة و طباعتها.
مثال
إستدعاء دالة ثابتة في الكونستركتور
في حال أردت استدعاء دالة ثابتة في الكونستركتور فيمكنك الوصول إليها من خلال إسم الكلاس أو من خلال الكونستركتور نفسه.
إذا كانت الدالة الثابتة و الكونستركتور تابعان لذات الكلاس فيمكن الوصول للدالة من الكونستركتور من خلال كتابة this.constructor بدلاً من كتابة إسم الكلاس.
في المثال التالي قمنا بتعريف كلاس يحتوي على كونستركتور و دالة ثابتة.
الدالة الثابتة قمنا باستدعائها في الكونستركتور مما يعني أنه في كل مرة يتم فيها إنشاء كائن من الكلاس فإنها ستتنفذ بشكل تلقائي.
المثال الأول
فيما يلي قمنا بإعادة المثال السابق مع استدعاء الدالة demo() في الكونستركتور من خلال الكونستركتور نفسه.