In diesem Artikel werden der Bereich auf Blockebene, private Variablen und der Modulmodus in JavaScript ausführlich vorgestellt, was für das Erlernen von JavaScript sehr hilfreich ist.
In diesem Artikel werden der Bereich auf Blockebene, private Variablen und der Modulmodus in JavaScript im Detail vorgestellt. Die Details sind wie folgt:
1. Bereich auf Blockebene (privater Bereich). wird häufig außerhalb von Funktionen im globalen Bereich verwendet, wodurch das Hinzufügen zu vieler Variablen und Funktionen zum globalen Bereich eingeschränkt wird.
(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. Private Variablen: Alle in einer Funktion definierten Variablen können als private Variablen betrachtet werden, da auf diese Variablen außerhalb der Funktion nicht zugegriffen werden kann.
Privilegierte Methoden: Öffentliche Methoden, die Zugriff auf private Variablen und private Funktionen haben, werden als privilegierte Methoden bezeichnet.
2.1) Definieren Sie privilegierte Methoden im Konstruktor:
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
Der Nachteil des Konstruktormusters besteht darin, dass für jede Instanz der gleiche Satz neuer Methoden erstellt wird.
2.2) Statische private Variablen zur Implementierung privilegierter Methoden
Definieren Sie im privaten Bereich zunächst private Variablen und private Funktionen und dann den Konstruktor und seine öffentlichen Methoden.
(function(){ //私有变量和函数 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. Modulmuster: Singletons können durch Hinzufügen privater Variablen und privilegierter Methoden erweitert werden.
Wenn Sie ein Objekt erstellen und es mit einigen Daten initialisieren und gleichzeitig einige Methoden offenlegen müssen, die auf diese privaten Daten zugreifen können, können Sie das Modulmuster verwenden.
var application=function(){ //私有变量和函数 var components=[]; //初始化 components.push(new BaseComponent()); //公共接口 return { getComponentCount:function(){ return components.length; }, registerComponent:function(){ if(typeof component=="object"){ components.push(component); } } } }();
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
jsInstanz des Codes, der eine Funktion nach einer bestimmten Zeitverzögerung ausführt
Ausführliche Erklärung zur Verwendung von JS-Hash zum Erstellen einer Single-Page-Webanwendung
JS implementiert einfach ein schwebendes Fenster
Das obige ist der detaillierte Inhalt vonDetailliertes Verständnis des Bereichs auf Blockebene, privater Variablen und des Modulmodus in JavaScript (grafisches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!