نظرًا لمرونة JavaScript، يمكن لأي شخص كتابة التعليمات البرمجية وفقًا لعاداته الخاصة. هناك أيضًا طرق برمجة وظيفية، وهناك أيضًا كائنات حرفية تُستخدم على نطاق واسع اليوم. نظرًا لظهور البرمجة الوظيفية الموجهة للكائنات، فإن JavaScript فقط لقد تطورت أيضًا تدريجيًا إلى برمجة الفصل. الآن سأشرح بإيجاز العديد من عادات البرمجة المألوفة:
1. الكائن الحرفي:
وفيما يلي المحتوى المقتبس: فار الشخص = { |
طريقة برمجة ذات خصائص JavaScript. تحتوي على اسم السمة والطرق setName وgetName في وحدات الفئة. ومن السهل نسبيًا استدعاء الطريقة person.setname('R'). من هذه النقطة فصاعدًا، يشير هذا إلى الشخص، و سمات وأساليب الشخص كلها ليست خاصة، ويمكن استدعاؤها.
2. وضع استدعاء منشئ النموذج الأولي
وفيما يلي المحتوى المقتبس: فار الشخص = الوظيفة (){ |
3. استخدم وظائف مجهولة للبرمجة الوظيفية
وفيما يلي المحتوى المقتبس: (وظيفة(){ |
أحد أكبر فوائد ظهور الفئات هو أنه يقلل من حدوث المتغيرات العامة، ولكن إذا كنت لا تزال معتادًا على البرمجة الوظيفية، فلا يهم طالما أنك تقوم بإنشاء وظيفة مجهولة وتؤدي إلى الإغلاق لا داعي للقلق بشأن ظهور المتغيرات العامة، كما ترى أعلاه، لا يمكن استدعاء اسم var خارج الوظيفة المجهولة إنشاء المتغيرات الخاصة والأساليب الخاصة.
4. البرمجة الصفية (لا أعرف ماذا أسميها)
وفيما يلي المحتوى المقتبس: فار شخص = وظيفة () { |
إنها تشبه إلى حد كبير الكائنات الحرفية، باستثناء أنه يتم تركها جانبًا، ويمكن جعل الأساليب والخصائص خاصة.
5. سلسلة الطريقة
وفيما يلي المحتوى المقتبس: فار الشخص = الوظيفة (){ |
jQuery هي مكتبة تسلسل الطرق الأكثر كلاسيكية. إذا كنت لا تزال لا تفهم ماهية تسلسل الطرق، فقم بإلقاء نظرة على هذا المثال:
وفيما يلي المحتوى المقتبس: var p = new Person(); |
هذه هي الطرق التي أعرفها أكثر، كل شخص لديه خصائصه الخاصة، لذلك هناك طرق لا حصر لها، ومع ذلك، أود استكشاف المشكلات التالية:
1. حول هذا المؤشر
يتم استخدامه عند إنشاء فئات متعددة، ولكن ما هو دوره في الواقع، وهو يلعب دورًا كبيرًا في إعادة الاستخدام والميراث.
قم أولاً بإنشاء فئة الشخص:
وفيما يلي المحتوى المقتبس: فار الشخص = الوظيفة (){ |
ثم قم بإنشاء فئة أطفال ودمج جميع أساليب وخصائص الشخص:
وفيما يلي المحتوى المقتبس: فار الأطفال = الوظيفة(العمر){ |
هذا هو الميراث، ثم ننظر إلى إعادة استخدام وظيفة بسيطة:
وفيما يلي المحتوى المقتبس: فار SetColor = وظيفة(){ بعد رؤية وظيفة هذا، يجب أن يكون لدي فهم جديد لهذا، والآن لدي سؤال، وهو ما إذا كان ينبغي استخدامه أم لا، دعونا نلقي نظرة على مثال بسيط: فار مجموعة اللون = { |
في فصل واحد فقط، يشير هذا إلى مكانين، مما يجعل الناس في بعض الأحيان في حيرة من أمرهم بسبب هذا وسيغيرون طريقة كتابة التعليمات البرمجية قليلاً:
وفيما يلي المحتوى المقتبس: فار مجموعة اللون = { |
بهذه الطريقة، يمكن أن يكون الكود أكثر وضوحًا، لذلك، عند كتابة التعليمات البرمجية، يجب عليك التفكير في استخدامه المستقبلي وما إذا كان من الممكن إعادة استخدامه تجنب استخدام هذا قدر الإمكان. هناك مشكلة أخرى أكثر شيوعًا وهي كما يلي:
وفيما يلي المحتوى المقتبس: فار الشخص = الوظيفة (){ |
كما ذكرنا من قبل، إذا لم يتم كتابته كـ var p = new Person();p.setName('tom'); فهذا في هذه الفئة سيشير مباشرة إلى Person.prototypel. لن يحدث هذا الخطأ أثناء الترجمة أو وقت التشغيل سيتم الإبلاغ عن خطأ في بعض الأحيان قد يسبب الصداع، لذا عند كتابة التعليمات البرمجية، أختار هذا بعناية دائمًا.
2. تغليف الطبقة
في Java، يمكن تعيين أساليب أو خصائص فئة ما على أنها خاصة، لتجنب الاستدعاءات الخارجية، لكن JavaScript لا تحتوي على مثل هذا الإعداد، ألقِ نظرة على الكود التالي:
وفيما يلي المحتوى المقتبس: فار الشخص = { |
يوجد في هذا الفصل طريقتان، وهما init وsetName، ونريد فقط تشغيل setName من init، أو الطرق المختلفة التي ستتم إضافتها إليه في المستقبل، ولا نريد أن تظهر:
person.setName('توم'); //توم
اتصل بطريقة setName مباشرة. لكي تكون دقيقًا، تريد أن تكون طريقة setName خاصة، وأن تكون سمة الاسم خاصة، وهذا يمنع المبرمجين الآخرين من استدعاء الأساليب التي لا تريد أن يتم استدعاؤها عند استخدام فصلك.
إذًا كيف ينبغي علينا تغليف الفئات بشكل جيد؟ جرب طريقة برمجة أخرى وانظر كيف ستسير النسخة المنقحة:
وفيما يلي المحتوى المقتبس: فار شخص = وظيفة () { |
بهذه الطريقة، يمكن خصخصة الأساليب والخصائص التي كان من المفترض في الأصل خصخصتها، ولا يمكن استدعاؤها مباشرة من الخارج، ويتم تحقيق ذلك أيضًا باستخدام عمليات الإغلاق، ومع ذلك، فإن طريقة البرمجة هذه ليست سهلة القراءة، خاصة للمبتدئين. سيكون من الصعب جدًا رؤية هذا النوع من التعليمات البرمجية، كما أنه سيستهلك ذاكرة أكبر من تلك العادية.
حسنًا، هذا كل ما لدينا الآن، وسأتحدث عن عمليات الإغلاق والنطاق في المرة القادمة التي يتوفر لدي فيها الوقت.