2010-09-02 2 views
5

Ich versuche, ein "Feature" von PHP (und in den meisten Sprachen) in Javascript zu replizieren.Verwendung einer Zeichenfolge, um einen Objektnamen zu referenzieren

Hier ist es in PHP:

$objectName = 'ObjectA'; 

$someObject->$objectName->someMethod(); 

im Grunde eine String-Variable unter Verwendung eines Objektvariable zu referenzieren.

So in Javascript, ich hatte gehofft, wie etwas zu tun:

var objectName = "ObjectA"; 

someObject.[objectName].someMethod(); 

Wer weiß, wie dies zu tun? Oder wenn es überhaupt möglich ist?

Antwort

14

Sie haben es fast, entfernen Sie einfach das erste ., wie folgt aus:

var objectName = "ObjectA"; 
someObject[objectName].someMethod(); 

Wenn Sie möchten, für weitere Informationen rund um diese suchen, es bracket notation genannt wird.

+0

Gah. Ich war ein verdammter Charakter. Ich wusste nicht, wie es hieß, oder ich hätte eine Google Notation. Vielen Dank! – Charlie

+0

Dies funktioniert nicht über die erste Tiefe hinaus. Wenn Sie eine Zeichenfolge wie "Object.a.attribute.val" haben, können Sie [str] das letzte Attribut nicht ablehnen. Wie erreiche ich das? –

Verwandte Themen