Vorwort JavaScript unterscheidet sich von anderen Sprachen dadurch, dass es Schlüsselwörter zum Deklarieren privater Variablen verwenden kann. Verschlüsse Es gibt viele Möglichkeiten, Abschlüsse zu beschreiben, zum Beispiel: Die Logik der Verwendung von Closures zum Erstellen privater Variablen lautet: Funktion außerhalb(){ sei val = 123; Funktion innerhalb(){ Rückgabewert; } zurück nach drinnen; } console.log(draußen()());//123 Das obige Beispiel gibt uns eine allgemeine Vorstellung von der Logik der Verwendung von Closures zum Erstellen privater Variablen, reicht jedoch nicht aus, um die Bedeutung privater Variablen widerzuspiegeln. Eine const-Variable kann auch den Effekt des obigen Codes erzielen: //Darauf kann zugegriffen, aber es kann nicht geändert werden, wodurch der Effekt des obigen Codes erzielt wird const val = 123; console.log(Wert);//123 Der folgende Code verdeutlicht insbesondere die Bedeutung privater Variablen: Funktion Person () { let _name = "unbekannt"; sei _Alter = 18; let _sex = 'Mann'; Funktion setzeName(Name){ _name = Name || 'unbekannt'; } Funktion getName(){ gibt _name zurück; } Funktion setAge(Alter){ wenn(Typ des Alters === 'Zahl'){ _Alter = Math.floor(Alter); }anders{ Fehler auslösen("Typ des Alters !== 'Zahl'"); } } Funktion getAge(){ gib _age zurück; } Funktion setzeGeschlecht(Geschlecht){ wenn(Geschlecht === 'Mann' || Geschlecht === 1){ _sex = 'Mann'; }sonst wenn(Geschlecht === 'Frau' || Geschlecht === 0){ _sex = 'Frau'; }anders{ throw Error('Eingabefehler'); } } Funktion getSex(){ gib _sex zurück; } zurückkehren { setName : setName, getName : getName, Alter festlegen: Alter festlegen, getAge : getAge, Geschlecht festlegen: Geschlecht festlegen, Sex bekommen: Sex bekommen } } sei xiaoming = person(); lass xiaohong = person(); xiaoming.setName('xiaoming'); xiaohong.setName('xiaohong'); console.log('xiaoming-Name: ' + xiaoming.getName());//xiaoming-Name: xiaoming console.log('xiaohong-Name: ' + xiaohong.getName());//xiaohong-Name: xiaohong xiaoming.setAge(19.3333); xiaohong.setAge('16');//Nicht abgefangener Fehler: typeof age !== 'number' console.log('xiaoming Alter: ' + xiaoming.getAge());//xiaoming Alter: 19 console.log('xiaohong Alter: ' + xiaohong.getAge());//xiaohong Alter: 18 xiaoming.setSex(1); xiaohong.setSex('Frau'); console.log('Xiaoming Geschlecht:' + xiaoming.getSex());//Xiaoming Geschlecht: Mann console.log('xiaohong Geschlecht: ' + xiaohong.getSex());//xiaohong Geschlecht: Frau Aus dem obigen Code können wir ersehen, dass wir, wenn wir die Werte der drei Variablen _name, _age und _sex festlegen oder abrufen möchten, nur die festen Methoden wie setName, getName, setAge, getAge, setSex, getSex usw. verwenden können und dass in allen Setter-Methoden die formalen Parameter beurteilt werden. Dies bedeutet, dass alle Vorgänge am Objekt unter Kontrolle sind, was einige der negativen Auswirkungen von JavaScript als schwach typisierte Sprache bis zu einem gewissen Grad abschwächt. Schwache Karte Wenn Sie nicht viel über WeakMap wissen, können Sie zunächst die ausführliche Einführung zu WeakMap lesen. let nameWeakMap = neue WeakMap(); let ageWeakMap = neue WeakMap(); lass sexWeakMap = neue WeakMap(); Funktion Person () { let _hash = Objekt.create(null); nameWeakMap.set(_hash,'unbekannt'); AlterWeakMap.set(_hash,18); sexWeakMap.set(_hash,'Mann'); Funktion setzeName(Name){ nameWeakMap.set(_hash,name || 'unbekannt'); } Funktion getName(){ gibt den NamenWeakMap zurück.get(_hash); } Funktion setAge(Alter){ wenn(Typ des Alters === 'Zahl'){ AlterWeakMap.set(_hash,Math.floor(Alter)); }anders{ Fehler auslösen("Typ des Alters !== 'Zahl'"); } } Funktion getAge(){ gibt ageWeakMap.get(_hash) zurück; } Funktion setzeGeschlecht(Geschlecht){ wenn(Geschlecht === 'Mann' || Geschlecht === 1){ sexWeakMap.set(_hash,'Mann'); }sonst wenn(Geschlecht === 'Frau' || Geschlecht === 0){ sexWeakMap.set(_hash,'Frau'); }anders{ throw Error('Eingabefehler'); } } Funktion getSex(){ gibt sexWeakMap.get(_hash) zurück; } zurückkehren { setName : setName, getName : getName, Alter festlegen: Alter festlegen, getAge : getAge, Geschlecht festlegen: Geschlecht festlegen, Sex bekommen: Sex bekommen } } sei xiaoming = person(); lass xiaohong = person(); xiaoming.setName('xiaoming'); xiaohong.setName('xiaohong'); console.log('xiaoming-Name: ' + xiaoming.getName());//xiaoming-Name: xiaoming console.log('xiaohong-Name: ' + xiaohong.getName());//xiaohong-Name: xiaohong xiaoming.setAge(19.3333); xiaohong.setAge('16');//Nicht abgefangener Fehler: typeof age !== 'number' console.log('xiaoming Alter: ' + xiaoming.getAge());//xiaoming Alter: 19 console.log('xiaohong Alter: ' + xiaohong.getAge());//xiaohong Alter: 18 xiaoming.setSex(1); xiaohong.setSex('Frau'); console.log('Xiaoming Geschlecht:' + xiaoming.getSex());//Xiaoming Geschlecht: Mann console.log('xiaohong Geschlecht: ' + xiaohong.getSex());//xiaohong Geschlecht: Frau Der gleiche Effekt wird durch die Erstellung privater Variablen erzielt. WeakMap wird übrigens zum Erstellen privater Variablen in der Klasse verwendet. AbschlussDieser Artikel dokumentiert lediglich, was ich über die Methoden und Funktionen zum Erstellen privater Variablen in JavaScript weiß. Wenn Fehler oder Auslassungen vorliegen, weisen Sie mich bitte darauf hin. Vielen Dank. Oben sind die Details der beiden Möglichkeiten zum Deklarieren privater Variablen in JavaScript aufgeführt. Weitere Informationen zum Deklarieren privater Variablen in JavaScript finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Linux löscht automatisch Protokolle und Beispielbefehle von vor n Tagen
>>: Flussdiagramm für den Webserverzugriff auf HTTP und HTTP-Zusammenarbeit
React ist eine JavaScript-Bibliothek zum Erstelle...
Durch die Verwendung der virtuellen Domänennamenk...
Inhaltsverzeichnis Vorwort Schwierigkeit Domänenü...
In diesem Artikel wird der spezifische Code von R...
Inhaltsverzeichnis Warum setState verwenden? Verw...
1. Vorbereitung Installieren Sie Tomcat auf dem L...
Es gab bereits einen Artikel über den Ausführungs...
CSS-Position Das Positionsattribut gibt den Posit...
In diesem Blogbeitrag geht es um eine Schwierigke...
Ich möchte einen Artikel von Zhang Xinxu zitieren...
Vorwort Vor kurzem habe ich mir abends etwas Zeit...
Rasterlayout Dem übergeordneten Element hinzugefü...
In diesem Artikelbeispiel wird der spezifische Co...
1. Installieren Sie die virtuelle Maschine Hyper-...
Nachdem IntelliJ IDEA ein Javaweb-Projekt mit Tom...