Maison >interface Web >js tutoriel >Comment l'instruction « with » peut-elle aider à définir des variables dans la portée du bloc en JavaScript ?
Définition des variables à l'intérieur de la portée du bloc
L'instruction JavaScript with a fait l'objet d'un examen minutieux en raison de ses pièges potentiels. Pourtant, au milieu de ce débat, un cas d'utilisation est apparu qui exploite efficacement ses capacités : définir des variables à l'intérieur de la portée du bloc.
En JavaScript, les variables ne sont pas limitées au bloc dans lequel elles sont définies. Cela peut conduire à un comportement inattendu, en particulier lors de la déclaration de fermetures dans des boucles. Considérez le code suivant :
for (let i = 0; i < 3; i++) { const num = i; setTimeout(() => { alert(num); // Always displays "2" }, 10); }
Dans cet exemple, la variable num a une valeur de 2 pour les trois fonctions car elle est partagée entre elles. Cependant, nous pouvons utiliser l'instruction with pour créer une nouvelle portée pour chaque itération de la boucle :
for (let i = 0; i < 3; i++) { with ({ num: i }) { setTimeout(() => { alert(num); // Displays "0", "1", and "2" }, 10); } }
Ici, la variable num est étendue au bloc qui suit l'instruction with, garantissant que chaque fermeture a son valeur attendue. Ce comportement est particulièrement utile lors de la simulation de la portée d'un bloc dans des environnements où les constructions ES6 comme let ne sont pas encore entièrement prises en charge.
Bien que l'instruction with ait ses détracteurs, sa capacité à définir des variables à l'intérieur de la portée du bloc est une utilisation légitime et efficace. cas qui peut améliorer la fiabilité et la clarté du code JavaScript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!