【问题标题】:in javascript is it possible to construct an object literal with expressions evaluating to strings for property names? [duplicate]在 javascript 中是否可以构造一个对象文字,其表达式为属性名称的字符串? [复制]
【发布时间】:2009-11-23 14:23:15
【问题描述】:

即是否可以这样做:

var fruit = "banana";
var x = {
    "app" + "le" : 5, // "apple" : 5
    function(){return "orange"} : 8, // "orange" : 8
    "" + fruit : 3 // "banana" : 3
};

【问题讨论】:

  • 感谢您的回复。投票赞成并接受法比恩的,因为他是第一个回复的。再次感谢。
  • 虽然标题的表述不太好,但实际上这个问题先于另一个问题,因此是先行问题,而不是重复问题。

标签: javascript object-literal


【解决方案1】:

不,你不能,你需要在第一次初始化后喂它:

var myKeyName = "bar";
x[myKeyName] = "foo";

【讨论】:

    【解决方案2】:

    您需要声明空对象并在之后构建字符串。 对象字面量的名称需要有效的字符串

    如果您不运行“橙色”的函数并对其进行定义, 您想成为“橙色”的名称将是整个函数的字符串。

    var fruit = "banana";
    var x = {};
    x["app" + "le"]=5;
    x[(function(){return "orange"})()]=8;
    x[fruit]=3;
    
    /* returns  x={
        apple: 5,
        banana: 3,
        orange: 8
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 2011-08-12
      • 2012-06-18
      • 2014-03-04
      • 2020-04-21
      相关资源
      最近更新 更多