簡體   English   中英

在JavaScript文字中使用變量作為屬性名稱?

[英]Use variable for property name in JavaScript literal?

我知道我們可以在運行時在Javascript對象中創建新屬性,但是該屬性是否也可以賦值? 例如。

var value = "New value";

var table = new Object();

var newValue = table[value];

現在,我知道值表有一個名為“value”的新屬性。 但是這個“值鍵”包含的信息是“新值”。那么,這是否意味着現在表對象如下:

table = {
value:"New Value";
}

你在分配訪問時會感到困惑。

// Assigns a variable named 'value' with a value of 'New Value'.
var value = "New value";
// Creates a variable named 'table' as a blank Object.
var table = new Object(); // Alternatively - table = {};
// Attempts to access "New Value" from object "table" which returns undefined.
var newValue = table[value];

如果要為對象分配屬性,請執行以下操作:

// Assumes table is still an object.
table['key'] = 'value';

// Note that I almost _always_ opt for the variable['key'] notation over
// the variable.key notation because it allows you to use keys
// that would otherwise not be valid as identifiers.
table['Some Key'] = 'Some Value'; // This works.
table.Some Key = 'Some Value'; // This does not.

稍后,當您想要檢索該值並將其存儲在新變量中時,就是這樣:

var newVariable = table['key'];

希望澄清一些。 如果我能擴展它的任何部分,請告訴我。

沒有。 你的陳述

var newValue = table[value];

沒有設置任何東西,因為在你創建table你沒有分配任何屬性, newValue將是undefined

如果你有一個value分配一個值變量,並且希望下鍵分配一個值表value ,你想干什么

table['value'] = value;

或者

table.value = value

呃,不,我不認為你說得對。

所有這一切都是將undefined分配給newValue ,因為您正在嘗試訪問table的“ New Value ”屬性,該屬性不存在。

我認為你要做的是:

var value = "New value";
var table = {};
table.value = value;

暫無
暫無

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

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