言われなきゃ気付かない$.extendの引数。
$.extendも$.fn.extendも同じなんだけど、このメソッドには引数が3種類ある。
まずはメジャー系2種。
$.extend({ foo: 'bar' }); // jQuery.foo = 'bar'; var o = $.extend({ foo: 'bar' }, { fizz: 'buzz' }); // merge but shallow
jQuery自体を拡張する1引数extendと、引数をマージする複引数extend。
この辺はplugin作ったりなんだりで良く見かける。
わざわざ「but shallow」とか書いた時点でオチが読めるとは思うけど、
第3のコール方法は、deep mergeのためのもの。
var o = $.extend(true, { foo: 'bar' }, { fizz: 'buzz' });
第1引数をboolean値にすると、deep mergeの有無を指定するフラグとして扱われる。
デフォルトがshallow mergeなだけに何かしらdeep mergeする手段はあると思ったけど、こういうことだったらしい。