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
In MySQL liest die Funktion LOAD_FILE() eine Date...
Heute musste ich nach dem Neustart des Spiels fes...
Langsame Protokollabfragefunktion Die Hauptfunkti...
Beim Hinzufügen einer Windows 2008-Server-Subdomä...
1. Was ist Docker? (1) Docker ist ein Open-Source...
Ein Prozess ist ein Programmcode, der in der CPU ...
Die Tabellenüberschrift kann über oder unter der ...
Inhaltsverzeichnis Unterschied zwischen MVC und M...
Vorwort Ich habe vor Kurzem eine virtuelle Maschi...
1. Überprüfen Sie die maximale Anzahl geöffneter ...
Erlaube './' relative Pfade in docker-com...
Informationen zur Überprüfung der Kennwortstärke:...
Ohne weitere Umschweife werde ich den Code direkt...
Konfigurieren Sie zunächst die Projektartefakte K...
Dieser Artikel beschreibt anhand eines Beispiels,...