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 :
JavaScript résout généralement ce problème (en utilisant des fermetures) :
Mais je préfère cette méthode (en éliminant les fermetures) :
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).