Проверки JSHint, которые теперь встроены в PhpStorm, сообщили мне о магических числах JavaScript, и я понимаю, что это сделает более четкий код, чтобы избежать их использования.Избегание использования магических чисел в JavaScript - альтернативы, которые работают с JsHint
Я попытался это:
var constants = {
millisecs: 1000,
secs: 60
};
а также это:
var constants = function() {
this.millisecs = 1000;
this.getMillisecs = function() {
return this.millisecs;
};
};
JsHint жалуется на обоих.
Принимая решение от this answer хотя прекрасно работает:
var constants = (function() {
var millisecs = 1000,
defaultMsgsPerSecond = 60;
this.getMillisecs = function() { return millisecs; };
this.getDefaultMsgsPerSecond = function() { return defaultMsgsPerSecond; };
})();
Предположительно из-за закрытия. Почему это принято, тогда как другие два предложения, взятые из другого вопроса SO, не являются?
Редактировать: Хотя это и не вызывает ошибку, на самом деле это не работает. Ошибки сказать константы не определены. JsFiddle.
Для уточнения - на «работает» я имею в виду «не влечет за собой предупреждение от JsHint»
Одна из проблем, очевидно, появляются с первыми двумя примерами коды, но отсутствует в последнем примере коды, является то, что «константа» не то, что константа - то есть, может быть изменена позже в коде (с 'констант .millisecs = 100; '). – penartur
@penartur, который поражает меня как ответ - рабочий пример сразу вызывает себя, делая его свойства закрытыми, и, таким образом, раскрываются только два геттера? – bcmcfc
@ Wouter-Huysentruit, пожалуйста, вы можете объяснить свое редактирование? – bcmcfc