2010-11-12 4 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 в. ( Я верю, что это потому, что он явно не вызывает конструктор, но, честно говоря, я действительно не знаю Редактировать: в соответствии с разделом 11.1.5 ECMAScript spec он полностью эквивалентен new Object(). Думаю, это круто, потому что оно короче и менее склонны к опечаток.) ​​

1

вобще

var my_obj = {}; 

{} является Java-нотация для создания объекта буквальным.

Смежные вопросы