如何在 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中文网其他相关文章!