使用现有属性为新成员分配值

时间:2011-06-06 14:03:29

标签: javascript

请原谅我的头衔。我努力思考但想不出更好的头衔。我的问题很简单,如何在javascript中执行以下操作。

var blah={ try2:[45,56],try1:try2[0]};
console.log(blah);

3 个答案:

答案 0 :(得分:1)

我的建议:

var blah = { try2: arr, try1: arr[0] };

(其中arr引用您的数组对象,在您的情况下为[45, 56]。)

因为对象文字的两个属性需要数组,所以将数组定义拉出对象文字更有意义,然后使用标识符(如arr)来引用array ...这种模式更清晰,更易读。

答案 1 :(得分:0)

你不能在对象文字中这样做。你必须这样做:

var blah = { try2: [45, 46] };
blah.try1 = blah.try2[0];

如果您真的希望能够将其表达为单个表达式,则可以使用匿名函数:

var blah = (function() {
  var obj = { try2: [45, 46] };
  obj.try1 = obj.try2[0];
  return obj;
})();

答案 2 :(得分:0)

首先,我会避免使用try#作为标识符。 try是javascript(和许多其他语言)中的重新分类的单词

我会这样做

var blah= { try0:[45,56] } 
blah['try1'] = blah.try0
console.log(blah)

你也可以这样做

var blah= { try0:[45,56] } 
blah.try1 = blah.try0
console.log(blah)

结果如下

    Object
     try0: Array[2]
     try1: Array[2]
     __proto__: Object

你可以观察到:http://jsfiddle.net/CCf2e/

但是,简单地说,当它以这种方式初始化时,你不能引用它。 try0无法调用,因为它还不存在。