2017-11-19 2 views
-1

Suposse eine Funktion:Wie kann Variablenname in JavaScript bekannt sein?

function get(){} 

dies eine Variable

var name = "Eduardo"; 
get(name); 
function get(n) {} 

und ich möchte erhalten den Namen der Variablen zeigen, dass übergeben wurde, ohne diesen Namen kennen.

function get(n) { 
return getNameVariableFromValue(n); // Pseudocode for explain my question 
} 

so, ich will den Namen der Variablen ohne previouslu diesen Namen zu kennen.

PD: Meine Frage ist vor allem zu wissen, wer eine Variable im Fenster-Objekt ist, ohne diesen Namen kennen oder Wert

+0

mir Klingt einfach 'wollen window.variablename' ... Vielleicht müssen Sie klär die Frage. – Shadow

+0

Ihre Frage ist nicht klar. Bitte fügen Sie weitere Beschreibung hinzu –

+0

Ich habe bereits bearbeitet –

Antwort

1

Ihre Frage geht davon aus, dass keine zwei Eigenschaften immer den gleichen Wert haben würden, die ist sehr unwahrscheinlich. Aber, diese wilde Annahme machen, müssten Sie die neue window Eigenschaft explizit vornehmen, anstatt nur eine globale Variable zu deklarieren, und dann könnten Sie Object.keys() verwenden, um alle Schlüsselnamen des window Objekts aufzusuchen und nach dem zu suchen, der Ihrem Wert entspricht . Wenn gefunden, melden Sie den Schlüsselnamen.

window.myGlobal = "Test"; 
 

 
Object.keys(window).forEach(function(key){ 
 

 
    if(window[key] === "Test"){ 
 
    console.log(key); 
 
    } 
 
});

Dieser Code wird aufgrund Sandbox in der Stack-Überlauf-Schnipsel Umgebung nicht funktionieren, aber man kann es sehen arbeiten here (stellen Sie sicher, dass Ihre Entwickler-Tools-Konsole geöffnet haben beim Laufen).

+0

Scott Marcus, meine Frage sagt "ohne zuvor den Variablennamen zu kennen" –

+0

@EduardoSebastian Siehe aktualisierte Antwort. –

+0

Und in dem Fall, dass die Variable nur deklariert und nicht zugewiesen wurde –

0

Sie können den Wert als ein Objekt an die Funktion senden und wie etwas tun unten

function get(n) { 
 
return Object.keys(n)[0]; 
 
} 
 
var name ="Test1"; 
 
var name2 = "Test2" 
 
console.log(get({name})) 
 
console.log(get({name2}))

+0

See mi Bearbeiten Usman –

+0

Das ist ein bisschen ein Betrüger, nicht wahr? Sie können den Namen der Variablen auch einfach als String an 'get()' übergeben. –

Verwandte Themen