【jQuery】プラグインでのオプション(オブジェクト形式)の初期設定方法を2通り

【その1】
今までは、こうしてました。

$.fn.testPlugin = function(options){
var options = options || {};
options.hoge1 = options.hoge1 || 'hoge1の初期値';
options.hoge2 = options.hoge2 || 'hoge2の初期値';
options.hoge3 = options.hoge3 || 'hoge3の初期値';
...


【その2】
でも、どう考えても、こっちのほうがわかりやすいですよね…。

$.fn.testPlugin = function(options){
var options = $.extend(
{
'hoge1':'hoge1の初期値',
'hoge2':'hoge2の初期値',
'hoge3':'hoge3の初期値'
},
options
);
...


【注意点】
しかし、気をつけなくてはならないのは、『jQuery.extend()』を
使う場合は、初期値を使うつもりで空のプロパティを渡しては
いけない、ということです。
初期値ではなく、空白がオプションとして設定されてしまいます。


(検証ページ)
http://www.usamimi.info/~sutara/sample/jq_extend_test.html


【ダメな例】


$('#hoge').testPlugin({
'hoge1': '何らかのオプション',
'hoge2': '', //初期値を使うつもり ←空白がそのまま使用される
'hoge3': '何らかのオプション'
};


【こう書くべき】


$('#hoge').testPlugin({
'hoge1': '何らかのオプション',
'hoge3': '何らかのオプション'
};
//初期値を使うつもりなら、プロパティを定義しないこと!