JavaScript:如何定义“对象”

3

我正在使用非常方便的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个回答

4
字面上,这个消息的确如此。实际上:
var my_obj = {};

这定义了一个没有显式属性的对象,从JSLint的角度来看,这相当于你正在做的事情但更好。(据我所知,这是因为它没有显式地调用构造函数,但说实话我真的不知道。编辑:根据ECMAScript规范第11.1.5节,它与new Object()完全等价。我想这很酷,因为它更短,而且更不容易出错。)


0

只是做。

 var my_obj = {};

{} 是用于创建对象字面量的 JavaScript 符号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接