JSHintの検査では、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の質問から得られた他の2つの提案は受け入れられません。
編集:エラーは発生しませんが、実際には機能しません。定数が定義されていないというエラーは定義されていません。 JsFiddle。
はは明確にするために、 - 「作品」で私が意味する、あなたの編集について
一つの問題は明らかにあなたの最初の2つのコード例で表示されるが、後者のコード例では不足している、「定数」という一定ではないということです - 、それは '定数と(コードで後で変更することができます.millisecs = 100; ')。 – penartur
@penarturは答えとして私を襲っています - 実際の例はすぐにそのプロパティをプライベートにし、2つのgetterだけが公開されています。 – bcmcfc
@ Wouter-Huysentruitあなたの編集内容を教えてください。 – bcmcfc