簡體   English   中英

我可以在 JavaScript 中使用變量作為變量名嗎?

[英]Can I use a variable as variable name in JavaScript?

我正在嘗試使用一個變量作為另一個變量名稱。 例如,我有以下內容:

var dynamicname = 'name1_'

我試圖將其設置為這樣的新變量的名稱:

dynamicname + '2' = 'myvalue'

這顯然不起作用,但有沒有辦法實現這一目標? eval合適嗎?

略有偏離,但是使用對象對此的可能答案可能是:

const obj = {
    [ dynamicNameVar + '2' ]: ...
}

或者,對於那些守舊派的人,

var obj = {};
obj[dynamicNameVar + '2'] = ...

我希望這有幫助! :)

如評論中所述,您永遠都不要這樣做。

但是,如果您想這樣做:

var name ="name1_";

// declare a new var as name1_test and set it to 'TestWorked'.
eval("var "+name+"test = 'TestWorked'");

// prints value of name1_test ('TestWorked')
console.log(name1_test);

如果只為觀看的視頻保留指示器/標記,則可以使用Set如果需要更多存儲的信息,則可以使用Map而不是使用動態創建的變量,在該情況下,您仍然需要為變量創建訪問器。

 var seen = new Set; console.log(seen.has('foo')); // false; seen.add('foo'); console.log(seen.has('foo')); // true; 

據我所知,這是最好的方法。

 window["varname"]=32; console.log(varname)

正如其他人所說,這是一種不好的做法,您應該使用對象。 但是,如果由於某些原因確實需要執行此操作,則正確的方法是使用window對象而不是eval。 您的情況是:

var dynamicname = 'name1_'
window[dynamicname + '2'] = 'myvalue'

您可以執行alert(name1_2) ,它將顯示“ myvalue”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM