JSHints Inspektionen, die jetzt in PHPStorm integriert sind, informierten mich über JavaScript-magische Zahlen und ich merke, dass klarer Code verwendet wird, um sie zu vermeiden.Vermeiden von magischen Zahlen in JavaScript - Alternativen, die mit JsHint funktionieren
Ich habe versucht, dieses:
var constants = {
millisecs: 1000,
secs: 60
};
und auch dieses:
var constants = function() {
this.millisecs = 1000;
this.getMillisecs = function() {
return this.millisecs;
};
};
JsHint beide beklagt.
Einnahme der Lösung aus this answer obwohl funktioniert gut:
var constants = (function() {
var millisecs = 1000,
defaultMsgsPerSecond = 60;
this.getMillisecs = function() { return millisecs; };
this.getDefaultMsgsPerSecond = function() { return defaultMsgsPerSecond; };
})();
Vermutlich wegen der Schließung. Warum wird das akzeptiert, während die anderen beiden Vorschläge, die aus einer anderen SO-Frage stammen, nicht sind?
Edit: Obwohl es keinen Fehler auslöst, funktioniert es nicht wirklich. Es ist falsch zu sagen, dass Konstanten nicht definiert sind. JsFiddle.
Um zu klären - von "Werken" meine ich "löst keine Warnung aus JsHint"
Ein Problem mit Ihrem ersten beiden Codebeispielen deutlich erscheinen, aber in der zweiten Codebeispiel fehlt, ist, dass die „Konstanten“ sind nicht so konstant - das heißt, kann später im Code geändert werden (mit 'Konstanten .millisecs = 100; '). – penartur
@penartur das scheint mir die Antwort zu sein - das Arbeitsbeispiel nennt sich sofort selbst, macht seine Eigenschaften privat und damit sind nur die beiden Getter exponiert? – bcmcfc
@ Wouter-Huysentruit bitte könnten Sie Ihren Schnitt erklären? – bcmcfc