Heim  >  Artikel  >  Web-Frontend  >  Einführung in Schließungen in JavaScript_Javascript-Tipps

Einführung in Schließungen in JavaScript_Javascript-Tipps

WBOY
WBOYOriginal
2016-05-16 16:09:151269Durchsuche

Der sogenannte Abschluss sollte sich beziehen auf: Die interne Funktion liest Variablen außerhalb der aktuellen Funktion, also des Kontexts, in dem sie erstellt wurde.

Code kopieren Der Code lautet wie folgt:

Funktion hallo(){
var char = "hello,world";
Funktion print(){
console.log(char);
};
Rückgabe print();
}

Es ist zu beachten, dass sich die Druckfunktion hier auf die Char-Variable der externen Hallo-Funktion bezieht, sodass wir hier ein
zurückgeben können
Code kopieren Der Code lautet wie folgt:

Hallo, Welt

In gewisser Weise sollte diese Funktion dem Umfang zugeschrieben werden. Natürlich haben wir keine Möglichkeit, direkt auf char zuzugreifen, es sei denn, es liegt ein Fehler vor, wenn wir diese Variable deklarieren. Wie zum Beispiel
Code kopieren Der Code lautet wie folgt:

Funktion hello(){
char = "hello,world";
Funktion print(){
console.log(char);
};
Rückgabe print();
}

Nur weil eine Variable fehlt.

Code kopieren Der Code lautet wie folgt:

Hier wird „Hallo“ zum Abschluss. Verschlüsse sind eine besondere Art von Objekten. Es besteht aus zwei Teilen: der Funktion und der Umgebung, in der die Funktion erstellt wird. Die Umgebung besteht aus allen lokalen Variablen, die zum Zeitpunkt der Erstellung des Abschlusses im Gültigkeitsbereich waren.

Javscript-Schließung und das

Es ist zu beachten, dass es beim Lesen und bei den Argumenten zu Problemen kommen kann.

Code kopieren Der Code lautet wie folgt:

Funktion hello(){
This.char = "hello,world";
Funktionsausgabe(){
         char = „Ich bin kein Hallo Welt“;        
         console.log(this.char);
};
Rückgabeausgabe();
}

Natürlich ist dieses Beispiel nicht angemessen, daher benötigen wir ein zusätzliches Beispiel, um dieses Problem zu erklären. Hier ist ein Beispiel aus „Javascript Advanced Programming“, um dieses Problem zu veranschaulichen.
Code kopieren Der Code lautet wie folgt:

var name = "Das Fenster";

var object = {
Name: „Mein Objekt“,

getNameFunc: function(){
         return function(){
              return this.name;
}
}
};
object.getNameFunc()()


Es ist nur so, dass diese Verwendung real ist und die Lösung darin besteht, eine temporäre Variable zu speichern, wie im Artikel „Einige Kenntnisse darüber in Javascript“ erwähnt.

Code kopieren Der Code lautet wie folgt:

var name = "Das Fenster";
var object = {
Name: „Mein Objekt“,

getNameFunc: function(){
        var that = this;
         return function(){
              return that.name;
}
}
};
object.getNameFunc()()


Fermetures Javascript et variables de lecture et d'écriture
Il est à noter que si nous ne gérons pas bien nos variables, nous pouvons également modifier ces variables.
Copier le code Le code est le suivant :

fonction bonjour(){
var char = "bonjour, le monde";
Retour{
​​​​ set : fonction(chaîne){
               return char = string;
},
                              print : function(){
console.log(char)
>
>
>
var dire = bonjour();
say.set('nouveau bonjour,monde')
say.print() // nouveau bonjour tout le monde

Fermetures et performances Javascript

Citation de MDC

Copier le code Le code est le suivant :

Si les fermetures ne sont pas nécessaires pour une tâche spécifique, il n'est pas judicieux de créer inutilement des fonctions au sein d'autres fonctions, car les fermetures ont un impact négatif sur les performances du script, notamment la vitesse de traitement et la consommation de mémoire.

L'article le mentionnait également.
Copier le code Le code est le suivant :

Par exemple, lors de la création d'un nouvel objet ou d'une nouvelle classe, les méthodes doivent généralement être associées au prototype de l'objet plutôt que définies dans le constructeur de l'objet. La raison en est que la méthode sera réaffectée à chaque appel du constructeur (c'est-à-dire à chaque création d'objet).
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn