Comment l'accès fonction externe variable dans imbriquée à l'intérieur de la fonction en JS

Je suis nouveau sur le JS et ayant un doute avec l'exemple ci-dessous. Veuillez consulter les commentaires en ligne.

JS:

function outer() {
	var x = 5;
	console.log("outer",x); //Prints 5
	console.log("-----------");
	function inner() {
		var x = 6;
		console.log("inner",x); //Prints 6
		console.log("outer",x); //Prints 6. How to print 5
		console.log("-----------");
		function _inner() {
			var x = 7;
			console.log("_inner",x); //Prints 7
			console.log("inner",x); //Prints 7. How to print 6
			console.log("outer",x); //Prints 7. How to print 5
			console.log("-----------");
		}
		_inner();
	}
	inner();
}
outer();

  • passer comme paramètres de fonctions intérieures avec un nom différent, je suppose?
  • Si une variable locale est déclarée avec un nom qui est le même comme une variable globale, puis (à l'exception du cas de la réelle portée globale) il n'y a tout simplement aucun moyen d'accéder à l'extérieur de la variable.
  • Est-ce intentionnel que tous les trois variables ont exactement le même nom? En changeant simplement les noms de "intérieure" de la variable à y et le "_inner" variable z, vous obtiendrez les résultats que vous attendiez.
  • J'ai volontairement gardé comme " x " ... je sais que si j'ai différents noms de variables ou de passer comme argument ...l'exemple fonctionne parfaitement bien... je voulais juste savoir est-il de toute façon comme dans l'exemple.
  • la question est alors pourquoi avez-vous besoin d'avoir les mêmes noms de variables?
  • Il n'y a pas de mécanisme pour faire exactement ce que vous voulez. La solution est d'utiliser des variables avec des noms différents. Ce que vous voulez, c'est complètement impossible en javascript (au moins jusqu'à ES6)
  • déjà répondu ici.. stackoverflow.com/questions/4001414/...

InformationsquelleAutor Roy | 2015-08-16