这就是我现在的表现。这感觉就像一个哈利......
var broken_posts = new Object();
broken_posts.empty = new Array();
broken_posts.one = new Array();
答案 0 :(得分:4)
var broken_posts = { empty: [], one: [] };
答案 1 :(得分:3)
var broken_posts = {
empty: [],
one: []
};
答案 2 :(得分:0)
Andru和Thilo的回答都是正确的,但也许有关为什么有序的信息:
避免直接调用Array构造函数:它令人困惑和误导。 var a = new Array(5);
返回[undefined,undefined,undefined,undefined,undefined]
,而var b = new Array('5');
返回['5']
。甚至var c = new Array(5,5);
=> [5,5]
。
同样适用于直接对象构造函数。实际上没有理由创建一个调用基本对象构造函数的对象。您应该使用关键字new
的唯一情况是创建日期对象或调用自制的构造函数(即使在这种情况下,也不需要new
关键字,替代设计模式)。使用对象文字{}
更常见,允许直接分配属性(甚至方法)。此外,以JIT方式创建对象要容易得多。它不仅需要更少的代码行,正确使用闭包,或者仅用于一次调用,一旦完成它,对象就可以获得GC。
function iWantAnObject(obj)
{
if (obj instanceof Object)
{
return true;
}
return false;
}//function returns, obj is GC'ed
iWantAnObject({just:'some',rand:'Object',withA:function(){console.log('a method';}});
与这种情况相反:
var tempObj = new Object();
tempObj.just = 'some';//etc...
//etc...
iWantAnObjct(tempObj);
//tempObj isn't yet GC'ed
在最后一个例子中,机会是:你不小心创建了全局变量,在内存中有不再需要的各种对象,最后但并非最不重要:与JS的原型性质不太一致。
答案 3 :(得分:0)
我更愿意使用CoffeeScript。
然后你可以这样做:
broken_posts =
empty: []
one: []