jQuery.extendの履歴
第1引数に第2、第3の順でマージされる。ただし再帰しない。
第1引数をtrueにした場合はディープコピーする
var base = {'a': 1, 'b': 2}; var option = {'c': 3, 'b': 5}; var merged = $.extend(base, option); console.log(merged, base, option); // merged: Object a=1 b=5 c=3 // base : Object a=1 b=5 c=3 // option: Object c=3 b=5
デフォルト値の設定
マニュアルより。元を変更したくなければ、第1引数に空オブジェクトを指定する。
var empty = {} var defaults = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; var settings = $.extend(empty, defaults, options); // Result: settings == { validate: true, limit: 5, name: "bar" } empty == { validate: true, limit: 5, name: "bar" }
継承する
Child、Oyaはオブジェクトなので(関数オブジェクト)。
var Child = function(){}; var Oya = function(){}; jQuery.extend(Child.prototype, Oya.prototype)