2010-11-12 94 views
3

我使用非常方便JSLint工具来确保我的JavaScript是严格的。JavaScript:如何定义“对象”

我已经正在由JSLint的标记下面的代码:

var my_obj = new Object(); // <-- JSLint states "Use the object literal notation {}." 
var numKP = 1; 

while (query.indexOf('&') > -1) { 
    keypairs[numKP] = query.substring(0,query.indexOf('&')); 
    query = query.substring((query.indexOf('&')) + 1); 
    numKP++; 
} 

keypairs[numKP] = query; 

for (i in keypairs) { 
    my_obj[keypairs] = keypairs[i]; 
} 

我应该如何解决上面的代码,使其JavaScript的“严”(通过JSLint的验证)?

回答

4

字面上有消息称,其实:

var my_obj = {}; 

这个定义没有明确的属性的对象,这相当于你在做什么,但是从JSLint的的角度更好。 (我相信这是因为它没有明确调用构造函数,但说实话我并不知道编辑:根据ECMAScript spec 11.1.5节,它完全等价于new Object()。我猜这很酷,因为它更短并且不易发生输入错误。)

1

只是做

var my_obj = {}; 

{}是JavaScript的符号创建一个对象文字。