Maison > interface Web > js tutoriel > le corps du texte

Introduction à la méthode générale d'élimination des fermetures dans les astuces JavaScript_javascript

WBOY
Libérer: 2016-05-16 16:09:06
original
1609 Les gens l'ont consulté

La fermeture de JavaScript est une fonctionnalité qu'il développe activement, et c'est aussi une fonctionnalité qui se développe passivement. En d'autres termes, d'une part, JS peut mieux résoudre certains problèmes de fermeture. certains problèmes, problème JS, et j'ai dû utiliser des fermetures pour à peine résoudre le problème.

Les premiers ne seront pas abordés ici. Si les fermetures JS peuvent mieux résoudre le problème, il est bien sûr préférable d'utiliser des fermetures.

Ce dont je parle est de ce dernier point, en raison des limitations de JS lui-même, qui doivent être résolues avec des fermetures, comme l'exigence de "les variables ne sont initialisées qu'une seule fois".

Le langage conventionnel est résolu comme ceci :

Copier le code Le code est le suivant :

classe Classe{
fonction init(){
Ceci.n = 0;
>
fonction func(){
Ceci.n ;
Renvoyez ceci.n;
>
>
var obj = nouvelle Classe();

JavaScript résout généralement ce problème (en utilisant des fermetures) :

Copier le code Le code est le suivant :

var obj = {
func : (fonction(){
var n = 0;
fonction de retour(){
n ;
Retour n;
>
})()
>

Mais je préfère cette méthode (en éliminant les fermetures) :

Copier le code Le code est le suivant :

fonction Classe(){
var soi = ceci;
soi.n = 0;
self.func = fonction(){
soi.n ;
retourner soi-même.n;
>
>
var obj = nouvelle Classe();

Parce que ce dernier a une meilleure évolutivité. Lorsque vous devez implémenter différentes opérations sur une variable, cette dernière peut simplement définir une fonction différente (c'est-à-dire une simple expansion linéaire), tandis que la première (fermeture) devra être complètement réécrite. (c'est pourquoi vous entendez souvent le mot refactoring).

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal