English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

فهم عميق للدوائر النصية والمتغيرات الخاصة والم��يلات النمطية في JavaScript

هذا المقال يقدم شرحًا مفصلاً لمفهوم النطاق البلاك سكوب والسيكريت في بايثون ونمط المودول، لن أتحدث عن الكلام غير الضروري، ولكن سأقوم بشرح التفاصيل كما يلي:

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 (الرجاء استبدال # ب @ عند إرسال البريد الإلكتروني) لإبلاغنا، وقدم الدليل على الدليل، وسنقوم بإزالة المحتوى المزعوم عن انتهاك حقوق النسخ فورًا.

أنت قد تحب