Quiero crear una función rápida que tendrá console.log
un nombre de variable y el valor. Me gustaría que el resultado de la función se muestre en la consola: foo: bar
.Javascript: Haga referencia a un nombre de variable de la variable en sí
Mi idea básica de la función tiene el siguiente aspecto:
function varlog(var_name)
{
console.log(var_name + ": " + eval(var_name));
}
Y es que yo llamaría así:
function someRandomFunction()
{
var foo = "bar";
// ... some stuff happens
varlog("foo");
}
Esto funciona si foo
es global, pero no funciona en el ejemplo proporcionado. Otra opción que también solo funciona globalmente es usar window[var_name]
en lugar de la aterradora eval
.
No creo que lo que estoy pidiendo sea posible, pero pensé que lo tiraría allí.
Estoy pasando mucho tiempo tratando de ser flojo. Mi método actual es solo console.log('foo: ' + bar);
que funciona bien. Pero ahora solo quiero saber si esto es posible.
Algunas otras preguntas que hace referencia en la búsqueda de este/creación de lo que tengo ahora:
- Variable name as a string in Javascript
- How to convert variable name to string in JavaScript?
- Javascript, refer to a variable using a string containing its name?
- How to find JavaScript variable by its name
-
Editar: Me encantaría simplemente llamar al varlog(foo)
, si el nombre "foo" puede derivarse de la variable.
esta pregunta también: http://stackoverflow.com/questions/1009911/javascript-get-argument-value-and-name-of-passed-variable – manji
@najmeddine he prácticamente duplica eso con mejor formateo. Doh! Gracias :) – hookedonwinter
Podría extender javascript para convertir todas las asignaciones var 'var foo =" bar ";' a 'var foo = {foo:" bar "};' (sobre todo bromeando) (en su mayoría) – hookedonwinter