Le ispezioni di JSHint ora incorporate in PhpStorm mi hanno informato dei numeri magici JavaScript e mi rendo conto che renderà il codice più chiaro per evitare di utilizzarli.Evitare l'uso di numeri magici in JavaScript - alternative che funzionano con JsHint
ho provato questo:
var constants = {
millisecs: 1000,
secs: 60
};
e anche questo:
var constants = function() {
this.millisecs = 1000;
this.getMillisecs = function() {
return this.millisecs;
};
};
JsHint lamenta entrambi.
Prendendo la soluzione da this answer però funziona bene:
var constants = (function() {
var millisecs = 1000,
defaultMsgsPerSecond = 60;
this.getMillisecs = function() { return millisecs; };
this.getDefaultMsgsPerSecond = function() { return defaultMsgsPerSecond; };
})();
presumibilmente a causa della chiusura. Perché questo è accettato, mentre gli altri due suggerimenti presi da un'altra domanda SO non lo sono?
Modifica: Sebbene non si verifichi un errore, in realtà non funziona. Errori dire che le costanti non sono definite. JsFiddle.
Per chiarire - per "opere" Voglio dire "non si innesca un avvertimento da JsHint"
Un problema che appare in modo chiaro con i primi due esempi di codice, ma manca l'esempio di codice quest'ultimo, è che i "costanti" non sono così costanti - cioè, possono essere modificate in seguito nel codice (con 'costanti .millisecs = 100; '). – penartur
@penartur che mi sembra la risposta - l'esempio di lavoro si chiama immediatamente, rendendo le sue proprietà private e quindi solo i due getter sono esposti? – bcmcfc
@ Wouter-Huysentruit, per favore potresti spiegare la tua modifica? – bcmcfc