开发者问题收集

JavaScript:如何定义“对象”

2010-11-12
434

我正在使用非常方便的 JSLint 工具来确保我的 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 验证器)?

2个回答

实际上,正如消息中所述:

var my_obj = {};

这定义了一个没有显式属性的对象,这相当于您正在执行的操作,但从 JSLint 的角度来看更好。( 我认为这是因为它没有显式调用构造函数,但老实说,我真的不知道 编辑:根据 ECMAScript 规范 第 11.1.5 节,它完全等同于 new Object() 。我想这很酷,因为它更短,而且不容易出现拼写错误。)

Andrzej Doyle
2010-11-12

只需执行

 var my_obj = {};

{} 是用于创建对象文字的 javascript 符号。

hvgotcodes
2010-11-12