如何在JavaScript 中動態定義物件屬性名稱
JavaScript 物件文字可以方便地定義鍵值對的集合,其中鍵代表屬性名稱,值代表屬性值。然而,出現了一個常見的問題:我們可以使用變數作為物件字面量中的鍵嗎?
這個問題的答案取決於 JavaScript 版本。在 ES5 及更早版本中,直接使用變數作為物件文字中的鍵是行不通的。例如:
var thetop = 'top'; something.stop().animate({ thetop: 10 }, 10); // Doesn't work
這是因為在 ES5 中,物件屬性名稱必須用雙引號或單引號括起來。
ES5 及更早版本的解
在ES5 中使用變數作為鍵,需要建立一個物件字面量,並使用變數名稱作為屬性手動指派屬性值key:
var aniArgs = {}; aniArgs[thetop] = 10; // Assign value to property using variable name as key something.stop().animate(aniArgs, 10); // Pass the object literal to the animate method
ES6計算屬性名稱
ES6 引入了 ComputedPropertyName 的概念,它允許使用變數和表達式作為物件字面量內的屬性名稱。此語法如下所示:
const obj = { [variableOrExpression]: value };
使用此語法,您可以使用變數動態定義屬性名稱,例如:
var thetop = 'top'; const obj = { [thetop]: 10 }; console.log(obj.top); // Prints 10
現代瀏覽器支援此語法,可以簡化動態定義物件屬性名稱的過程。
以上是我可以在 JavaScript 中使用變數作為物件屬性名稱嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!