2017-05-22 2 views
0

Mein Problem ist einfach:Concatenate Name Variable (nicht Wert) Js

ich einen dynamischen Variablennamen in einer Funktion verketten möchten, so mit dem Namen Einsatz in Parameter, wenn ich die Funktion aufrufen, sie Concat automatisch die Zeichenfolge im neuen Variablennamen.

Exemple (falsch, glaube ich):

function blockDL(insertName){ 

    return var 'block' + insertName + 'DT'= document.createElement('dt'); 

}; 

blockDL('First'); 

ich den Code Rückkehr erwarten:

blockFirstDT = document.createElement('dt'); 

Vielen Dank für Ihre Hilfe! =)

+1

Warum möchten Sie das tun? Abgesehen davon, dass das nicht möglich ist, sehe ich keinen Vorteil darin. Sie * könnten * ein Objekt verwenden und die Werte als Eigenschaften des Objekts speichern, aber das scheint für Ihren Anwendungsfall unnötig zu sein. –

Antwort

0

Was Sie wollen, ist nicht möglich. Siehe "Variable" variables in Javascript? für Alternativen, was Sie tun können.

"Variable Variablen" ist jedoch normalerweise ein Indikator für schlechte Code-Design. Gerade in Ihrem Fall gibt es absolut keinen Grund oder Vorteil, irgendetwas davon zu tun. Benennen Sie einfach die Variablen blockDT und paraphDT oder was immer Sie wollen.

+0

Ich muss dies tun, weil ich nicht den gleichen Code für den Druck gleichen Block wiederholen möchte, aber ich muss den Namen der Variablen innerhalb der Funktion ändern (es ist in Französisch): https://openclassrooms.com/courses/dynamisez -vos-sites-web-avec-javascript/manipuler-le-code-html-partie-2-2 #/id/r-1924713 – Kys3r

+0

Kein Grund, mit schlechten Praktiken zu üben – juvian

+0

@ Kys3r: Das ist alles fair und quadratisch, aber Wenn etwas unmöglich ist, dann kann man nicht viel dagegen tun. * "Ich möchte nicht den gleichen Code wiederholen" * Dafür gibt es Funktionen. Sie definieren einmal eine Funktion und rufen sie so oft auf, wie Sie möchten. Die Variablennamen innerhalb der Funktion sind grundsätzlich irrelevant. –

0

Die einzige Möglichkeit, eine Zeichenfolge für einen Variablennamen zu verwenden, besteht darin, sie als Eigenschaft eines anderen Objekts zu platzieren. Wenn Sie die Variable global wollen, können Sie das window-Objekt verwenden.

window['block' + insertName + 'DT'] = document.createElement('dt'); 

das sagte, Sie sollten wirklich nicht brauchen und sollten wahrscheinlich nach anderen Möglichkeiten der Strukturierung Ihres Codes suchen.

+0

Danke @dgeare, und kann ich jetzt die blockFirstDT außerhalb der Funktion verwenden? – Kys3r

+0

@ Kys3r alles auf dem Fensterobjekt definiert wird eine globale Eigenschaft sein. damit Sie von überall in Ihrer Anwendung auf dieselbe Weise darauf zugreifen können. window.blockFirstDT und window ["blockFirstDT"] sind beide geeignete Methoden, um auf den Wert zuzugreifen. – dgeare