Heim  >  Artikel  >  Web-Frontend  >  Einführung in die allgemeine Methode zum Entfernen von Schließungen in JavaScript_Javascript-Tipps

Einführung in die allgemeine Methode zum Entfernen von Schließungen in JavaScript_Javascript-Tipps

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

JavaScripts Schließung ist eine Funktion, die sich aktiv entwickelt, und es ist auch eine Funktion, die sich passiv entwickelt. Mit anderen Worten: Einerseits kann JS einige Probleme mit Schließungen besser lösen bestimmte Probleme, JS-Problem, und musste Schließungen verwenden, um das Problem kaum zu lösen.

Ersteres wird hier nicht besprochen. Wenn JS-Verschlüsse das Problem besser lösen können, ist es natürlich besser, Verschlüsse zu verwenden.

Was ich diskutiere, ist Letzteres, aufgrund der Einschränkungen von JS selbst, die mit Abschlüssen gelöst werden müssen, wie zum Beispiel der Anforderung „Variablen werden nur einmal initialisiert“.

Die konventionelle Sprache wird wie folgt gelöst:

Code kopieren Der Code lautet wie folgt:

Klasse Klasse{
Funktion init(){
This.n = 0;
}
Funktion func(){
Dies.n ;
Geben Sie dies zurück.n;
}
}
var obj = new Class();

JavaScript löst dieses Problem normalerweise (mithilfe von Verschlüssen):

Code kopieren Der Code lautet wie folgt:

var obj = {
func : (function(){
var n = 0;
Rückgabefunktion(){
n ;
Geben Sie n;
zurück }
})()
}

Aber ich bevorzuge diese Methode (Verzicht auf Schließungen):

Code kopieren Der Code lautet wie folgt:

Funktion Class(){
var self = this;
self.n = 0;
self.func = function(){
self.n ;
return self.n;
}
}
var obj = new Class();

Da Letzteres eine bessere Skalierbarkeit aufweist, kann Letzteres einfach eine andere Funktion definieren (d. h. eine einfache lineare Erweiterung), während Ersteres (Abschluss) komplett neu geschrieben werden muss (Deshalb hört man oft das Wort Refactoring).

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