yo ya sabía que podía pasar en un objeto:
{a:"this is a"}
donde un es el nombre de la variable, pero realmente desea pasar justo a una variable o el nombre de una variable (una o "a") y deje que la función de alguna manera encuentre el nombre de la variable y su valor.
La razón por la que quiero hacer esto algo extraño es que estoy escribiendo una rutina de impresión de depuración. Si llamo así:
var x = "some string";
say(x);
o
say("x");
quiero que imprimir algo como:
X (string) = some string
puedo encontrar bastante fiable del tipo de una variable pasada, y así que sé cómo imprimirlo, pero realmente quiero tratar de evitar el redundar de tener que llamarlo así:
say("x", x);
que es lo que tengo que hacer ahora.
Lo que parece casi el trabajo es la respuesta de OrbMan. Claro, eval es evil, pero creo que está bien aquí porque es solo para una utilidad de depuración y no estará en el código publicado. He hecho un poco de rutina de prueba de mi propio uso de esta solución:
var x = "this is x";
function say(a) {
alert(a + " = " + eval(a));
}
say("x");
y funciona pero sólo si x es global. Esto no funciona:
function wrapper() {
var x = "this is x";
say("x");
}
Por lo tanto, esta solución está cerca, pero desde que uso casi no hay variables globales, esto no va a funcionar. Maldición, está tan cerca. Lo que creo que necesito es "llamar por nombre" en lugar de "por valor" o "por referencia". Y necesito una función que funcione ya sea que se llame desde otra función o no.
Como he dedicado muchas horas a esto, hacer la pregunta aquí fue un acto de desesperación, tengo que concluir que realmente no hay forma de hacerlo. Shucks.
A todos los que respondieron, gracias por toda su ayuda.
http://stackoverflow.com/questions/1007981/how-to-get-function-parameter-names-values-dynamically-from-javascript y http://stackoverflow.com/questions/914968/inspect- the-names-values-of-arguments-in-the-definition-execution-of-a-javascript –
@Paulo - la dirección de esos enlaces obtiene los nombres de los parámetros definidos en la firma de la función. Esta pregunta se trata de obtener el nombre y el valor de la variable que se pasa a la función. – RedFilter