请原谅我的头衔。我努力思考但想不出更好的头衔。我的问题很简单,如何在javascript中执行以下操作。
var blah={ try2:[45,56],try1:try2[0]}; console.log(blah);
答案 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无法调用,因为它还不存在。