私はjavascriptで次の関数を書いています:
Number.prototype.niceFormat(options) {
var defaultOptions = {
thousandSeparator: ',',
leftPad: 0,
decimalPlaces: 2
};
if (typeof options.thousandSeparator != 'undefined'
&& options.thousandSeparator != null) {
defaultOptions.thousandSeparator = options.thousandSeparator;
}
}
厄介なのは、オプションを完全に柔軟にしたいということです。
を呼び出すとniceFormat({decimalPlaces: 3})
、それに応じてdefaultOptions
プロパティdecimalPlaces
が置き換えられます。
にあるプロパティの数だけif文を書くのは嫌defaultOptions
です。
のプロパティの値を柔軟に上書きする良い方法はありますdefaultOptions
か?
array_merge
基本的に、JavaScriptで for オブジェクトのようなものを探しています。
アップデート:
カンタス航空とクレヨンとポールのコメントから回答を得て、次のように書きました。
Number.prototype.niceFormat = function(options) {
var defaultOptions = {
thousandSeparator: ',',
leftPad: 0,
decimalPlaces: 2
};
var env = defaultOptions;
if (typeof options != 'undefined') {
for (option in env) {
if (options.hasOwnProperty(option)
&& typeof options[option] != 'undefined') {
env[option] = options[option];
}
}
}
とにかくこれをさらに改善するには?