<code>$.extend (jQuery.extend)</code> のよくある使い方
function内の変数の初期化で使う。
次のコードではoptions
に渡しているプロパティのみ上書きされる。
function f(options) { var defaults = { str1: 'default str1', str2 : 'default str2', bool : true }; var settings = jQuery.extend({}, defaults, options); // ここで初期化する console.dir(settings); // 出力は以下の通り // bool false // str1 "custom str1" // str2 "default str2" } f({ str1 : 'custom str1', bool : false });
ちなみに
$.extend
を使わない場合は次のように少し面倒。
function f(options) { var defaults = { str1: 'default str1', str2 : 'default str2', bool : true }; // ここで初期化する var settings = { str1 : options.str1 || defaults.str1, str2 : options.str2 || defaults.str2, // デフォルトがtrueなので、options.bool || defaults.bool ではうまく動かない bool : typeof options.bool !== 'undefined' ? options.bool : defaults.bool }; console.dir(settings); // 出力は以下の通り // bool false // str1 "custom str1" // str2 "default str2" } f({ str1 : 'custom str1', bool : false });