اقرأ في هذا المقال
- الكلمة المحجوزة this في لغة البرمجة جافا سكريبت
- كيفية استخدام الكلمة المحجوزة this في لغة البرمجة جافا سكريبت
الكلمة المحجوزة this في لغة البرمجة جافا سكريبت
تعد لغة البرمجة جافا سكريبت (Javascript) عبارة عن أداة مفتوحة المصدر تم تصميمها لإنشاء تطبيقات قائمة على الويب، مما يجعلها تنتشر بشكل أسرع بكثير من لغات البرمجة الأخرى، ولهذه اللغة مجموعة من الكلمات المحجوزة الخاصة بها كغيرها من لغات البرمجة الأخرى، ومن أهم هذه الكلمات المحجوزة (Keyword) وأكثرها استخداماً الكلمة (this) وهي عبارة عن كلمة لها سلوك يختلف عن بقية الكلمات في لغات البرمجة وتشير إلى كائن معين في الوقت الحالي، وهنالك اختلافات في سلوكها بين النمطين (strict) و (non-strict)، وفي معظم الحالات يتم تحديد قيمة الكلمة المحجوزة (this) وفقاً لطريقة استدعاء الدالة حيث لا يمكن ضبط قيمتها باستخدام عملية الإسناد العادية أثناء عملية التنفيذ؛ وقد تختلف قيمتها في كل مرة تُستدعى فيها الدالة.
كيفية استخدام الكلمة المحجوزة this في لغة البرمجة جافا سكريبت
غالبًا ما كانت هذه الكلمة الأساسية في (JavaScript) مصدر إرباك كبير للمبتدئين في اللغة حيث ينبع بعض هذا الالتباس من حقيقة أن في (JavaScript) يتم التعامل مع هذه الكلمة بشكل مختلف مقارنة باللغات الأخرى مثل (Java) أو (Python).
الكلمة المحجوزة (this) لها العديد من الاستخدامات ضمن هذه اللغة ويعتبر الاستخدام الرئيسي لها هو (reference instance variables) أي أنها تحدد وتشير إلى كائن في الوقت الحالي، وفي لغة البرمجة جافا سكريبت هناك أنواع مختلفة من المتغيرات وهي (Static variables) و (Instance Variables ) و (Local Variables)، ويتم استخدامها مه هذه الأنواع المختلفة من المتغيرات وآلية العمل مع هذه الدالة أن القيمة الخاصة بها يتم تخزينها ضمن عملية التنفيذ الحالي لبرنامج (JavaScript).
وبالتالي عند استخدامها داخل دالة معينة سوف تتغير هذه القيمة اعتماداً على كيفية تعريف هذه الوظيفة وكيفية استدعائها وسياق التنفيذ الافتراضي، فعلى سبيل المثال هناك كلاس اسمه (car) ويتضمن العديد من الصفات مثل: (color) و (speed) و (model) و (top speed) وتم إنشاء عينة من هذا الكلاس ولها صفات معينة مثل:
(Model = 2020)
(color= white )
(top speed= 260 )
عند استخدام الكلمة (this ) داخل الكود لهذا الصنف على النحو التالي:
public int getTopspeed() { return this.topspeed } سيتم ارجاع القيمة 260.