JavaScript:如何定义“对象”

时间:2010-11-12 15:15:23

标签: javascript

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

答案 0 :(得分:4)

事实上,正如消息所说的那样:

var my_obj = {};

这定义了一个没有显式属性的对象,它等同于你正在做的事情,但从JSLint的角度来看更好。 (我相信这是因为它没有显式地调用构造函数,但说实话我并不真正知道编辑:根据ECMAScript spec部分11.1.5它完全等同于new Object()。我猜它很酷,因为它更短,更不容易出现拼写错误。)

答案 1 :(得分:1)

只是做

 var my_obj = {};

{}是用于创建对象文字的javascript表示法。