2017-06-02 5 views
1

Ich bin ein Javascript-Neuling.Javascript, String interpolierte Funktion Name

Ich habe eine Codezeile:

data.content_teaser.image_square_attachment_url 

Platz ändern können: Ich habe eine Variable namens content die 'square' oder 'vertical' oder 'horizontal' sein kann.

In Ruby kann ich mit der String-Interpolation senden, wie kann ich das gleiche in js erhalten?

So etwas wie "data.content_teaser.image_" + contentType + "_attachment_url"

+0

Was erwarten Sie? –

+0

Ich kann nicht verstehen, wie kann ich ändern, die Zeichenfolge eines var ein Methodenname zu verwenden ... –

+0

Also was machst du das Ändern des Funktionsnamens? –

Antwort

0

Javascript hat 2 Möglichkeiten, auf Objekteigenschaften/Methoden zuzugreifen - Punktnotation und Square-Bracket-Notation. Letzterer verwendet eine Zeichenfolge, die Sie auf die normale Weise für eine beliebige Zeichenfolge erstellen könnten. So sind diese 2-Äquivalent:

data.content_teaser.image_square_attachment_url; 
data.content_teaser["image_square_attachment_url"]; 

Also, Ihre Frage zu beantworten:

var contentType = "square"; 
var result = data.content_teaser["image_" + contentType + "_attachment_url"];