我正在使用非常方便的 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验证器)?
答案 0 :(得分:4)
var my_obj = {};
这定义了一个没有显式属性的对象,它等同于你正在做的事情,但从JSLint的角度来看更好。 (我相信这是因为它没有显式地调用构造函数,但说实话我并不真正知道编辑:根据ECMAScript spec部分11.1.5它完全等同于new Object()
。我猜它很酷,因为它更短,更不容易出现拼写错误。)
答案 1 :(得分:1)
只是做
var my_obj = {};
{}是用于创建对象文字的javascript表示法。