مساحة الاسم المحلية هي نطاق من المتغيرات والوظائف التي يمكن الوصول إليها فقط داخل دالة معينة أو كتلة رمز. في جافا سكريبت ، عند تنفيذ دالة ، يتم إنشاء مساحة اسم محلية يتم فيها تعريف جميع المتغيرات والوظائف المحلية المعلنة بداخلها.
- النقاط الرئيسية:
- عندما تبدأ الوظيفة التنفيذ
- سؤال وجواب
- كيف تعمل مساحة الاسم المحلية في وظيفة?
- متى بالضبط مساحة الاسم المحلية لوظيفة تم إنشاؤها?
- ماذا يحدث لمساحة الاسم المحلية بعد اكتمال الدالة?
- يمكن المتغيرات داخل وظيفة لها نفس أسماء المتغيرات في التعليمات البرمجية الخارجية?
- كيف يمكن لمساحة اسم محلية لوظيفة أن تكون مفيدة عند كتابة التعليمات البرمجية?
النقاط الرئيسية:
- يتم إنشاء مساحة اسم محلية عند استدعاء الوظيفة. عندما يتم استدعاء دالة ، فإنها تنشئ مساحة اسم محلية خاصة بها حيث يمكن الإعلان عن المتغيرات والوظائف المحلية.
- المتغيرات المحلية المعلنة داخل دالة مرئية فقط داخل تلك الوظيفة. وهي غير متوفرة خارج الوظيفة أو في وظائف أخرى.
- تقوم كل مكالمة دالة بإنشاء مساحة اسم محلية خاصة بها. إذا تم استدعاء دالة عدة مرات ، فإن كل مكالمة تنشئ نسختها الخاصة من المتغيرات والوظائف المحلية.
- المتغيرات المحلية لها الأسبقية على المتغيرات العالمية التي تحمل الاسم نفسه. إذا تم تعريف متغير محلي بنفس اسم المتغير العمومي داخل الوظيفة ، فسيتم استخدام المتغير المحلي ، وليس المتغير العمومي ، عند الوصول إلى هذا المتغير.
يساعد استخدام مساحات الأسماء المحلية على تجنب تعارض الأسماء بين المتغيرات والوظائف ، ويحسن النمطية وإعادة استخدام التعليمات البرمجية. بالإضافة إلى ذلك ، فإن المتغيرات المحلية لها عمر أقصر لأنها يتم إنشاؤها فقط عند استدعاء الوظيفة وتدميرها عند إنهاء الوظيفة.
عندما تبدأ الوظيفة التنفيذ
عندما يتم استدعاء دالة في برنامج ما ، تحدث عدة نقاط رئيسية تؤدي إلى تنفيذها:
- إنشاء مساحة اسم محلية لوظيفة
- المعلمات والحجج الملزمة
- تنفيذ رمز الوظيفة
- إرجاع القيمة (إذا لزم الأمر)
إنشاء مساحة اسم محلية لوظيفة
قبل تنفيذ رمز الوظيفة ، يقوم المترجم بإنشاء مساحة اسم محلية حيث سيتم تخزين جميع المتغيرات المحلية والكائنات الأخرى التي تم إنشاؤها داخل الوظيفة. يتم ذلك لعزل الوظيفة عن مساحة الاسم العامة بحيث لا تتعارض المتغيرات التي تحمل الاسم نفسه مع بعضها البعض.
المعلمات والحجج الملزمة
معلمات الدالة هي الأسماء المحددة في تعريفها والتي تتوقع تلقيها كمدخلات. الوسيطات هي القيم التي تم تمريرها عند استدعاء الوظيفة. عند استدعاء دالة ، ترتبط الوسائط بالمعلمات عن طريق تعيين القيم. يسمح هذا باستخدام القيم التي تم تمريرها داخل الوظيفة ، وتصبح متاحة بأسماء المعلمات.
تنفيذ رمز الوظيفة
بعد ربط المعلمات والوسيطات ، يتم تنفيذ رمز الوظيفة. في هذه المرحلة ، يقوم المترجم بتنفيذ التعليمات بالتتابع داخل الوظيفة. هنا يمكنك استخدام المعلمات والوسيطات والمتغيرات الأخرى المعلنة داخل الوظيفة.
إرجاع قيمة
يعد إرجاع قيمة خطوة اختيارية يمكن أن تحدث في نهاية تنفيذ الدالة. إذا كانت الدالة تحتوي على بيان إرجاع ، فيمكنها إرجاع القيمة مرة أخرى إلى برنامج الاتصال. إذا لم يتم تحديد بيان الإرجاع ، تقوم الدالة بإرجاع قيمة افتراضية خاصة لا شيء.
تضمن كل هذه النقاط معا تنفيذ الوظيفة عند الاتصال بها. في كل مرة يتم فيها استدعاء دالة في البرنامج ، يقوم المترجم بتنفيذ هذه الخطوات ، مما يسمح باستخدام الوظائف لهيكلة الكود وإعادة استخدام المنطق.
سؤال وجواب
كيف تعمل مساحة الاسم المحلية في وظيفة?
يتم إنشاء مساحة الاسم المحلية في الدالة في وقت استدعاء الدالة ويتم إتلافها عند إنهاء الدالة. يسمح لك بعزل المتغيرات والوظائف المعلنة داخل دالة من التعليمات البرمجية الخارجية.
متى بالضبط مساحة الاسم المحلية لوظيفة تم إنشاؤها?
يتم إنشاء مساحة الاسم المحلية للوظيفة في وقت استدعاء الوظيفة. يحدث هذا عندما يصل تنفيذ البرنامج إلى السطر الذي يحتوي على استدعاء الوظيفة.
ماذا يحدث لمساحة الاسم المحلية بعد اكتمال الدالة?
بعد اكتمال الدالة ، يتم تدمير مساحة الاسم المحلية. تختفي جميع المتغيرات المعلنة داخل الوظيفة ، ولا يمكن الوصول إليها من خارج الوظيفة.
يمكن المتغيرات داخل وظيفة لها نفس أسماء المتغيرات في التعليمات البرمجية الخارجية?
نعم ، يمكن أن يكون للمتغيرات داخل الدالة نفس أسماء المتغيرات في الكود الخارجي ، لكن هذا لا يسبب تعارضا في الاسم. المتغيرات الداخلية لها الأسبقية على المتغيرات الخارجية ولا تظهر إلا داخل الوظيفة.
كيف يمكن لمساحة اسم محلية لوظيفة أن تكون مفيدة عند كتابة التعليمات البرمجية?
تكون مساحة الاسم المحلية للدالة مفيدة عندما تحتاج إلى عزل المتغيرات والوظائف بحيث لا تتعارض مع التعليمات البرمجية الخارجية. كما يسمح لك بتبسيط الكود وتحسين قابليته للقراءة ، حيث لا يمكن الوصول إلى المتغيرات الداخلية من خارج الوظيفة.