04.23.08
Variable de Variable en JavaScript.
Programando en javascript, lenguaje que nunca terminaré de entender a pleno, me vi con la necesidad de generar una variable con el valor de otra variable, similar a la asignación de PHP $$.
Investigué buscando una función o método que nos permita realizar la misma acción para JS y no tuve suerte; por lo que me propuse implementar un pequeño script que haga dicha tarea. Se me ocurrió algo como ...
if (arguments.length) eval(this + ' = \'' + arguments[0] + '\'')
else eval (this + '= \'\'');
}
Lo que hacemos es agregar un método nuevo al objeto nativo String denominado toVar. Como se utiliza ?. Sencillo:
var miVar = 'Nombre';
// Ahora .. una nueva variable 'Nombre = Damian'
miVar.toVar ('Damian');
La idea es crear una variable donde el nombre de la misma está almacenado en otra variable. Discutiendo dicho método en Foros del WEB. MaBoRaK ha realizado una definición más elegante:
window[this]=value || null;
return null;
}
Básicamente agrega al objeto window una nueva propiedad con el nombre que nos devuelve la palabra reservada this de valor pasado como parámetro del método. Si no se ha pasado un valor ... value será undefined y la propiedad asignará null (value || null).
Aportamos también el código para MooTools:
toVar: function (value) {
window[this]=value || null;
return null;
}
})
Una última aclaración, ambos métodos definen variables globales; es complicado (yo aún no se si se puede) un método que genere una variable local.
Interesante. Gracias Foros del Web y en particular a MaBoRaK.