così l'argomento è un array di variabili ? allora no, non c'è modo di ottenere il nome della variabile originale una volta che è passato in quel modo. nel lato di ricezione, basta guardare come:
["123","abc"];
e niente di più
si potrebbe fornire la funzione i nomi delle variabili e l'ambito cui si trovano, come:
function log(arr,scope){
for(var i=0;i<arr.length;i++){
console.log(arr[i]+':'scope[arr[i]]);
}
}
tuttavia, questo si verifica nel problema se si può fornire l'ambito anche. ci sono un sacco di problemi di ciò che this
è in alcune zone di codice:
- per le funzioni nonstrict,
this
è window
- per le funzioni severe,
this
è undefined
- per funzioni di costruzione,
this
è il costruito oggetto
- all'interno di un oggetto letterale,
this
è l'oggetto di chiusura immediato
pertanto non è possibile fare affidamento sul passaggio dello this
come ambito. a meno che non sia possibile fornire l'ambito, questo è un altro vicolo cieco.
se li si passa come un oggetto, è possibile scorrere l'oggetto e le sue "chiavi" e non i nomi delle variabili originali. tuttavia, in questo caso è più un danno che una cura.
Questo non è possibile in Javascript come si desidera che funzioni. Con qualcosa come "var foo = bar = {}" lo stesso oggetto viene chiamato con 2 nomi, e se si passa l'oggetto in una funzione è impossibile dall'interno della funzione per invertire quella ricerca e vedere quale nome è stato usato per passare in. – Gareth
Ok, allora posso smettere di cercare. Grazie! – arpo
Invece, dovresti imparare come usare un debugger. Inizia mettendo una riga contenente solo debugger invece della tua linea console.log, quindi esegui il tuo codice con Firebug o Chrome Inspector aperto – Gareth