======Store====== =====概要===== 設定情報などを保存するクラスです。階層構造を持つ情報を保存することができます。 =====プロパティ===== ====options==== ''型:Object'' ''get/set'' このストアのオプションを保持するオブジェクトです。 ---- ====items==== ''型:Object'' ''get/set'' clone()メソッドで作られる、保持しているアイテムのオブジェクトのコピーです。 ---- ====merger==== ''型:Function'' ''get/set'' [[#merge_newitems_merger|merge()]]メソッドを呼び出してマージする際に使われれる、マージ用の関数を指定します。デフォルトではBitsmistJSの[[ja:bitsmist-js-core:reference:util:util#deepmerge_obj1_obj2|ディープマージ用の関数]]が使用されます。 この関数を自作する場合、マージ先のオブジェクトとマージするオブジェクトが以下のようなイメージで渡されます。マージ後のオブジェクトを返してください。 merger(targetObject, sourceObject); // sourceObjectをtargetObjectにマージします =====コンストラクタ===== ====Constructor(options)==== ===パラメータ=== ^パラメータ^型^説明^ |options|Object|Storeクラスを初期化するオプションです。以下のキーがあります。| | "items"|Object|itemsプロパティをセットします。| | "merger"|Function|mergerプロパティをセットします。| =====メソッド===== ====clear()==== ''型:Undefined'' 保持しているアイテムを全て削除します。 ===パラメータ=== なし。 ===戻り値=== なし。 ---- ====clone()==== ''型:Object'' 保持しているアイテムのディープコピーを作成します。 ===パラメータ=== なし。 ===戻り値=== 保持しているアイテムのコピーを返します。 ---- ====get(key, defaultValue)==== ''型:*'' keyパラメータで指定された値を返します。指定されたキーが存在しない場合defaultValueを返します。返される値が配列かオブジェクトの場合、ディープコピーされたものが返されます。 キーには、ピリオド区切りで複数の階層を指定できます。以下のように指定した場合、store["settings"]["name"]の値が、返されます。 store.get("settings.name"); 途中の階層が存在しない場合でも、エラーは発生しません。上記の例で言うと、"settings"が存在しない場合でもエラーにはなりません。Undefinedが返されます。 ===パラメータ=== ^パラメータ^型^説明^ |key \\ ''必須''|String|取得するキーを指定します。| |defaultValue|*|キーが存在しない場合に返す値を指定します。| ===戻り値=== 指定されたキーの値です。キーの値が見つからない場合、defalutValueパラメータが指定されていればその値、指定されてない時はUndefinedを返します。 ---- ====has(key)==== ''型:Boolean'' 指定されたキーが存在するかを返します。 ===パラメータ=== ^パラメータ^型^説明^ |key \\ ''必須''|String|存在を確認したいキーを指定します。| ===戻り値=== キーが存在する場合はTrue、存在しない場合はFalseを返します。 ---- ====merge(newItems, merger)==== ''型:Undefined'' 現在保持しているアイテムに、引数で渡されたオブジェクトの内容をマージします。 ===パラメータ=== ^パラメータ^型^説明^ |newItems \\ ''必須''|Object/ \\ Array of objects|マージするオブジェクトを指定します。オブジェクトの配列を渡すこともできます。その場合は、配列内の全てのオブジェクトが順にマージされます。| |merger|Function|マージする際に使用する関数を指定します。指定がない場合は、[[#merger|mergerプロパティ]]にセットされているマージ関数が使用されます。| ===戻り値=== なし。 ---- ====remove(key)==== ''型:Undefined'' keyパラメータで指定された値を削除します。 ===パラメータ=== ^パラメータ^型^説明^ |key \\ ''必須''|String|削除するキーを指定します。| ===戻り値=== なし。 ---- ====set(key, value)==== ''型:Undefined'' keyパラメータで指定された項目に値をセットします。指定されたキーが存在しない場合は、自動的に作成されます。既にアイテムが存在する場合は、上書きされます。 キーには、ピリオド区切りで複数の階層を指定できます。以下のように指定した場合、store["settings"]["name"]に値がセットされます。 store.set("settings.name", "BarHeader"); 途中の階層が存在しない場合は、自動的に作成されます。上記の例の場合、もし"settings"が存在しない場合は、"settings"という階層が、自動的に作成されます。ただし既にキーが存在し、それがオブジェクトでない場合は、エラーとなります。例えば{"settings": "value"}という内容を持つStoreオブジェクトに上記のコードを実行した場合、"settings"という階層を作れずに、エラーとなります。 ===パラメータ=== ^パラメータ^型^説明^ |key \\ ''必須''|String|値をセットするキーを指定します。| |value \\ ''必須''|*|セットする値を指定します。| ===戻り値=== なし。