2010-08-25 18 views
9

Duplicar posible:
Determine original name of variable after its passed to a function.Obtener el 'nombre' de una variable en Javascript

Me gustaría saber si es posible obtener el nombre real de una variable.

Por ejemplo:

var foo = 'bar'; 
function getName(myvar) { 
    //some code 
    return "foo" 
}; 

Así que para getNombre (foo) devolverá "foo"

¿Es posible?

Gracias.

+2

qué estarías interesado en nombre de la variable? Más bien, tu lógica en las funciones debería depender de los valores de las variables ¿no? –

+0

Encuentro este código extremadamente extraño. Me pregunto qué estás tratando de lograr. –

+0

Afortunadamente esto no es posible en JavaScript, de lo contrario terminaría con algo horrible³ como este ... http://stackoverflow.com/questions/2749796/how-to-get-the-original-variable-name- of-variable-passed-to-a-function/2749857 # 2749857 –

Respuesta

4

No creo que sea posible. Cuando llamas a una función pasas un objeto, no una variable. A la función no le importa de dónde vino el objeto.

se puede ir por otro camino, aunque si se llama a su función como sigue:

getName('foo') 

o pasar tanto el valor como el nombre:

getName(foo, 'foo') 
+0

Solo un comentario, ¿por qué iba a pasar un valor de cadena de harco 'foo' cuando sé que voy a obtenerlo como valor de retorno? –

+0

@Sachin Shanbhag: ¿Cómo lo obtendrás exactamente como valor de retorno si no lo pasas como parámetro? Estás asumiendo que lo que el OP está haciendo es posible. Tal vez lo sea ... pero realmente me gustaría ver alguna evidencia de eso, por favor. –

+0

Estoy totalmente de acuerdo contigo. Esta es una de las maneras posibles de obtener lo que se requiere, pero desde la perspectiva de la programación, si estoy usando ese valor de retorno para otras operaciones, ya conozco ese valor antes de pasarlo a la función y no necesito esperar el valor de retorno. Sin ofender, pero en realidad estoy asumiendo que el nombre de la variable no es posible ya que no ayuda en la programación. –

Cuestiones relacionadas