[英]Square brackets notation inside object definition
在JavaScript中,我們可以使用[]
動態訪問或創建Object屬性。 是否有文件證明在定義/創建對象時也可以使用它?
據我測試(Chrome,FF,Safari)的最新版本,這個效果很好。 是否已記錄在案,舊的瀏覽器也支持嗎?
var key = "foo";
var value = 'bar';
var object = {
a: 1,
b: 2,
[key]: value,
c: 3
};
document.body.innerHTML = JSON.stringify(object); // {"a":1,"b":2,"foo":"bar","c":3}
是。 它稱為計算屬性名稱,是ES2015中的新增功能。
這意味着您可以以與對象實例創建相同的詞匯構造來添加具有運行時選擇名稱的對象屬性。
以前,您必須在對象實例化后添加具有運行時計算名稱的屬性。
表達式可用於計算名稱:
function foo() { return 1; }
var o = {
[foo() + 1]: 'should be 2'
};
console.log(o); // Object {2: "should be 2"}
從ECMAScript 6開始,對象初始化程序語法還支持計算的屬性名稱。 這樣就可以將表達式放在方括號[]中,該表達式將作為屬性名稱計算。
檢查文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.