2010-11-22 16 views
0

Ist das möglich?Javascript: Ist das möglich?

var [a+b] = something; 

ein: wird von mir definiert. ex: "Objekt"

b: ist eine Variable. Beispiel: "2"

+0

Was versuchst du zu machen? Hinzufügen von a nach b? –

+0

Ja ich möchte ein mit b verschmelzen – Adam

+0

Vielleicht versucht er eine Variable mit der Verkettung von a und b zu benennen. – Savageman

Antwort

2

Nicht sicher, was Sie erreichen möchten. Sie können eine Variable nicht einfach erstellen, indem Sie Strings in Klammern zusammenfassen. Sie können jedoch Klammern verwenden, um einem Objekt ein Name/Wert-Paar hinzuzufügen. Zum Beispiel, wenn Sie diesen Wert hinzufügen wollen myNewObj einzuwenden, können Sie etwas tun:

var myNewObj = {}; 
myNewObj[ a + b ] = something; 
+0

hmm, danach könnte ich es so nennen? 'myNewObj.ab'? – Adam

+0

Nein, Sie könnten folgendermaßen darauf zugreifen: 'myNewObj [a + b]'. – Savageman

+0

hmm ..: D lass es mich versuchen – Adam

2

Ich bin mir nicht sicher über Einheimische, aber für Globals könnten Sie window[a+b] verwenden, um auf die Variable zuzugreifen.

2

schießen mich ab, wenn ich hier falsch bin, aber es sieht aus wie Sie versuchen, dynamisch zu definieren Ihre Variablennamen, so dass Sie möglicherweise haben

var myVar1 = something; 
var myVar2 = something; 

Und so weiter.

AFAIK Sie können dies nicht in JavaScript oder einer deklarativen Sprache tun. Ihr besserer Ansatz wäre wahrscheinlich die Verwendung von Arrays in diesem Fall. Was sind Ihre eigentlichen Gründe dafür, dass Sie nach dem Ansatz suchen, nach dem Sie fragen?

+0

Lol niemand wird dich erschießen!: D aber ich denke nicht, dass Sie Recht haben, mit dem Fensterobjekt ist es leicht möglich, aber ich denke nicht, dass dies wäre der beste Weg, um diese Variablen dort zu definieren :) – Adam

1

Ich kann nicht anders, als zu denken, dass Sie einen Syntaxfehler im obigen Codefragment haben. Aber, wenn Ihre Frage etwas zu einem dynamischen Standort in einem Array zuweisen, dann können Sie es

den Beispielcode folgt vor, um

var a = 5; 
var array = []; 

function someFunction(b){ 
    array[a+b] = 'hello' 
} 


someFunction(5); 
alert(array[10]); 
2

Wenn Sie einen Wert auf etwas zu setzen sind, die erwiesenermaßen die Kombination von a und b darstellt, tun, warum nicht so etwas wie:

var obj = {}; 
obj[a] = {}; 
obj[a][b] = "something"; 

nicht so kurz wie obj[a+b] = "something" aber es ist zuverlässiger, da

a = "object" 
b = "2" 

und

a = "objec" 
b = "t2" 

sind nicht zu unterscheiden obj[a+b]

+0

Nicht sicher, was er zu erreichen versucht, aber ich denke, das ist die beste Lösung. – Savageman

1

wie der Rest der Jungs mit hier kann ich hier nicht wirklich verstehe Ihre Absicht, aber man könnte schreiben:

var a ='te'; 
var b = 'st'; 
eval ('(' + a + b + ' = 3)'); 
alert (test);