細かすぎて伝わらないjQuery拡張 (4) “$.configify” – Advent Calendar 2016
この記事は賞味期限切れです。(更新から1年が経過しています)
$.configify() は、ライブラリによくある options (いわゆる設定)を変更・取得する config() メソッドを、 オブジェクトに備えてあげる関数です。
$.configify(object)
使い方
var myApp = {
_options: {
name: null,
age: null,
email: null
}
};
$.configify(myApp);
// 引数なしで全ての値を取得
myApp.config(); // => {name: null, age: null, email: null}
// key, value を渡して値を設定
myApp.config("name", "john");
// オブジェクトを渡して値を設定
myApp.config({
age: 23,
email: "john@example.com"
});
// key のみ渡してその値を取得
myApp.config("name"); // => "john"
// 引数なしで全ての値をオブジェクトで取得
myApp.config(); // => {name: "john", age: 23, email: "john@example.com"}
- $.configify([object]) で引数のオブジェクトに .config() メソッドを実装します
- _options プロパティがある場合はそのデータで初期化します
- 設定データは options プロパティに格納されます
- .config() メソッドは引数のタイプと数で挙動が変わります
コード
$.configify = function(obj){
obj.config = function(){
var args = arguments;
this.options = this.options || {};
switch($.type(args[0])){
case "undefined": return this.options;
case "string":
if(args.length === 1){
return this.options[args[0]];
}
this.options[args[0]] = args[1];
break;
case "object":
$.extend(this.options, args[0]);
break;
default: break;
}
return this;
};
obj.config(obj._options);
return obj;
};
値を取得・設定する為だけのシンプルな関数です。 値を変更された場合にイベントを発火したりするのは、また後日別の関数で。
コメント