gpt4 book ai didi

Javascript 对象(动态属性名称)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:34:42 25 4
gpt4 key购买 nike

如果我有一个对象,像这样

var o = {
test : 1
}

我想要第二个对象,其中一个键应该是 o.test 的值。像这样:

var o2 = {
o.test : "bla"
}

我知道这是不可能的,但是有没有更好(更干净)的方法来做到这一点,就像我现在这样做一样?

目前我做的是这个:

var o2 = {};
o2[o.test] = "bla"

我想有更好的方法吗?

最佳答案

I guess there is a better way for this?

假设我已经正确理解了您的问题,那么不,不是真的。你展示的方式就是这样做的方式。没有办法在文字本身内部使用动态键,所以你必须先声明它,然后单独分配属性:

var o2 = {};
o2[o.test] = "bla";

o2; // { 1: "bla" }

更新

完整的细节已给出 in the spec .下面是对象文字属性标识符的语法:

PropertyName :
    IdentifierName
    StringLiteral
    NumericLiteral

StringLiteral 产生式是不言自明的。以下是 IdentifierName 产品的作用:

The production PropertyName : IdentifierName is evaluated as follows:

  1. Return the String value containing the same sequence of characters as the IdentifierName.

对于NumericLiteral 生产:

The production PropertyName : NumericLiteral is evaluated as follows:

  1. Let nbr be the result of forming the value of the NumericLiteral.
  2. Return ToString(nbr).

从这里可以看出,在对象初始化器中不能使用除字符串以外的任何东西。

关于Javascript 对象(动态属性名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18328706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com