English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
هذا المقال يقدم شرحًا مفصلاً لمفهوم النطاق البلاك سكوب والسيكريت في بايثون ونمط المودول، لن أتحدث عن الكلام غير الضروري، ولكن سأقوم بشرح التفاصيل كما يلي:
1. المجال البدني (المجال الخاص)،يستخدم غالبًا في المجال العام، خارج الدوال، لتقييد إضافة الكثير من المتغيرات والوظائف إلى المجال العام.
(function(count){ for(var i=0;i<count;i++){ console.log(i);//=>0،1،2،3،4 }; console.log(i);//=>5 })(5);
(function(){ var now=new Date(); if(now.getMonth()==0 && now.getDate()==1){ console.log("سعيد السنة الجديدة"); }else{ console.log("نتطلع إليك"); }; })();
2. المتغيرات الخاصة:يمكن اعتبار أي متغير تم تعريفه في الدالة متغيرًا خاصًا، لأنه لا يمكن الوصول إلى هذه المتغيرات من الخارج.
الطرق الخاصة: هي الوظائف العامة التي لها حق الوصول إلى المتغيرات والوظائف الخاصة.
2.1) تعريف الطرق الخاصة في بناء الجسم:
function Person(name){ this.getName=function(){ return name; }; this.setName=function(value){ name=value; }; }; var person1=new Person("Jason"); console.log(person1.getName());=>Jason person1.setName("gray"); console.log(person1.getName());=>gray var person2=new Person("Michael"); console.log(person1.getName());=>gray console.log(person2.getName());=>Michael person2.setName('Alex'); console.log(person1.getName());=>gray console.log(person2.getName()); //= Alex
عيب نموذج بناء الجسم هو أنه لكل نموذج يتم إنشاء مجموعة جديدة من الطرق.
2.2) استخدام المتغيرات الخاصة الثابتة لتحقيق الطرق الخاصة
في المجال الخاص، أولاً تعريف المتغيرات والوظائف الخاصة، ثم تعريف بناء الجسم وكذلك الوظائف العامة.
(function(){ //م変iables و functions خاصة var name=""; Person=function(value){ name=value; }; //特权方法 Person.prototype.getName=function(){ return name; }; Person.prototype.setName=function(value){ name=value; }; })(); var person1=new Person("Jason"); console.log(person1.getName());=>Jason person1.setName("gray"); console.log(person1.getName());=>gray var person2=new Person("Michael"); console.log(person1.getName());=>Michael console.log(person2.getName());=>Michael person2.setName('Alex'); console.log(person1.getName()); //= Alex console.log(person2.getName()); //= Alex
3. نموذج المودول:من خلال إضافة متغيرات خاصة وطرق امتيازية للاعتماد على نموذج الصنف يمكن تحسين الصنف.
إذا كان يجب إنشاء كائن وإعداده بكيانات معينة، فإنه يمكن استخدام نموذج المودول لفعل ذلك، و公开 بعض الطرق لاستخدام البيانات الخاصة.
var application=function(){ //م変iables و functions خاصة var components=[]; //إعداد components.push(new BaseComponent()); //واجهات عامة return { getComponentCount:function(){ return components.length; }, registerComponent:function(){ إذا كان نوع component == "object"{ components.push(component); }; }; }; };
هذا هو نهاية محتوى هذا المقال، نأمل أن يكون قد ساعدكم في التعلم، ونأمل أيضًا أن تشجعوا على دعم دليل التدريب.
البيان: محتوى هذا المقال تم جمعه من الإنترنت، حقوق النشر تخص المالك الأصلي، المحتوى تم جمعه من قبل المستخدمين عبر الإنترنت ويتم تحميله بشكل مستقل، هذا الموقع لا يمتلك حقوق الملكية، لم يتم تعديل المحتوى بشكل يدوي، ولا يتحمل أي مسؤولية قانونية. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فالرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (الرجاء استبدال # ب @ عند إرسال البريد الإلكتروني) لإبلاغنا، وقدم الدليل على الدليل، وسنقوم بإزالة المحتوى المزعوم عن انتهاك حقوق النسخ فورًا.