Questo post prende spunto da una domanda che ho trovato su Stackoverflow. Vorrei che si lasciasse perdere per un momento il fatto che cià che vuole fare lo sviluppatore è sbagliato sotto molti punti di vista (viola per esempio l'incapsulamento e usa variabili non dichiarate, quindi globali). Soffermiamoci invece sul perché cià che ha fatto funziona. Riassumendo brevemente il problema: uno sviluppatore, in Javascript, vuole creare un oggetto facendo in modo che quest'ultimo lavori su una variabile privata, definita al di fuori dell'oggetto. Lo sviluppatore aveva già , a suo dire, risolto utilizzando eval e ha voluto dimositrarlo con il seguente codice: var AObject={ get:function(s){ return s.toLowerCase()+a; } } function temp(){ var a="A"; var o={}; eval("o.get="+AObject.get.toString()); return o; } var BObject=temp(); BObject.get("B"); // "bA" (more...)

Continua a leggere Da variabile globale a privata

Categoria: Scripting