Personalmente non ho mai usato quel termine ma ho letto a cosa si riferisce e capisco bene cosa significa.non ho capito bene un concetto: lo "shadowing"
In programmazione viene definito "scope shadowing" quel meccanismo in cui avendo definito una variabile con un certo nome (identificatore) visibile per un certo ambito, lo stesso nome può essere usato in ambiti più interni per definire un'altra variabile che sostanzialmente va a "nascondere", all'interno di quest'ambito, il valore della variabile definita nell'ambito esterno.
Semplice esempio:
Fai sapere se è più chiaro o se servono ulteriori spiegazioni.codice:var x = 1; // variabile globale (questa è anche accessibile usando window.x) console.log(x); // output: 1 (function(){ // funzione auto-eseguita (quindi si crea un ambito locale) console.log(x); // output: 1 (riferimento generico alla variabile x) console.log(window.x); // output: 1 (riferimento specifico alla stessa variabile x) })(); (function(){ // altra funzione auto-eseguita var x = 2; // concetto di "shadowing"; usando lo stesso nome (identificatore) x, questa variabile locale "adombra" quella globale (dell'ambito esterno) console.log(x); // output: 2 (il valore della variabile locale) console.log(window.x); // output: 1 (usando window ci si riferisce in modo specifico alla variabile globale x) })();
Per comprendere questo concetto è opportuno avere ben chiaro cosa sia lo scope, cioè l'ambito di visibilità delle variabili.
Forse è più specifico parlare di "oggetto window" (il cui ambito è quello globale), se è questo ciò a cui ti riferisci. Magari l'esempio può fornire una chiave di lettura ma ad ogni modo il discorso andrebbe contestualizzato per poterti fornire una risposta precisa.e cosa centra con la proprietà window


Rispondi quotando