#javascript
#javascript
Вопрос:
При работе с объектными литералами в JavaScript я часто сталкиваюсь с проблемами синтаксиса вокруг последней пары метка / значение, поскольку для этого не требуется конечная запятая. Я вставляю новое значение и неизбежно забываю разделяющую запятую.
.draggable({
containment: "parent",
opacity: 0.50 // <- missing comma
revert: true // new pair
});
Итак, ради моего здравомыслия, было бы разумно всегда иметь фиктивную пару в конце? Кажется, это работает, и теперь все вставленные пары получают конечную запятую. Существуют ли другие соглашения? Двойная кавычка блестящая или идиотская? Обратная связь, пожалуйста! Спасибо.
.draggable({
containment: "parent",
opacity: 0.50,
"": null // dummy pair
});
Комментарии:
1. Когда происходит вставка после фиктивной пары?
2. Я бы всегда поддерживал фиктивную пару в качестве последней пары. Все «реальные» пары получают конечную запятую.
Ответ №1:
Нет.
Это просто глупо.
Вместо этого вы хотите использовать инструменты качества кода, такие как jslint и jshint. Если вы подключите их к предварительной фиксации в системе управления версиями или в безопасном механизме текстового редактора, вы никогда не пропустите эти ошибки.
В качестве альтернативы вы можете попробовать написать свой код в стиле Айзекса
var x = { containment: "parent"
, opacity: 0.50
, revert: true
};
Комментарии:
1. Isaacs сработал бы, но все, что я знаю — если я увижу подобный код в обзоре кода — я сойду с ума … но это только мои особенности … :):)
2. У @ZenMaster isaacs есть целое руководство по стилю, это странный стиль, но он интересный. До тех пор, пока все согласны и подтверждают руководство по стилю X, тогда на самом деле не имеет значения, что такое X.
3. Спасибо, ребята… Мне не нравится стиль Айзекса. Теперь я остановлю свою глупость.
4. @Raynos не открывать дискуссию по вопросу с ответом, но соответствие — не единственная важная вещь — читаемый код так же важен, а айзекс, для меня, нет.
Ответ №2:
Вы можете создать пустой объект, а затем заполнить его данными. Это позволило бы избежать использования запятых и является последовательным.
var obj = {};
obj.containment = parent;
obj.opacity = 0.50;
.draggable(obj);
Ответ №3:
В общем, я часто работаю с ассоциативными массивами, поэтому я не обязательно пропускаю последнюю запятую. Если вы хотите использовать его просто, ознакомьтесь с Coffee Script.
Ваш код будет выглядеть следующим образом:
draggable
foo:
key: value
bar:
key: value
и скомпилировать в:
draggable({
foo: {
key: value
},
bar: {
key: value
}
});