ChainableStore
継承:Store
概要
ChainableStoreはStoreクラスを継承した、他のStoreオブジェクトと連結可能なStoreクラスです。連結された場合、値取得時に自身にないアイテムは連結されたオブジェクトから取得を試みます。両方にアイテムが存在しマージ可能なオブジェクトの場合は、マージしたものが返されます。
このページでは、親クラスと違う箇所のみを説明しています。
プロパティ
localItems
型:Object
get
自身が保持しているアイテムのオブジェクトです。連結されている場合は、連結されているものは含まないアイテムを返します。
コンストラクタ
Constructor(options)
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
options | Object | Storeクラスを初期化する設定情報です。親クラスで設定できるキーに加え、以下のキーがあります。 |
“chain” | Store | このStoreオブジェクトと連結します。 |
“writeThrough” | Boolean | Trueの場合、set()/merge()での書き込み時に、自身ではなく連結先を変更します。 |
メソッド
chain(store)
型:Undefined
引数で指定されたStoreオブジェクトに連結させます。連結できるのは1つのオブジェクトだけです。複数回このメソッドが呼ばれた場合は、後から指定されたもので上書きされます。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
store 必須 | ChainableStore | 連結するChainableStoreオブジェクト。 |
戻り値
なし。
clone()
型:Object
保持しているアイテムのディープコピーを作成します。連結されている場合、連結先が保持しているアイテムと自身のアイテムそれぞれをclone()でコピーし、マージしたものを返します。マージにはBitsmistJSのディープマージ用の関数が使用されます。
パラメータ
なし。
戻り値
保持しているアイテムのコピーを返します。
get(key, defaultValue)
型:*
keyパラメータで指定された値を返します。
他のストアに連結されている場合、自身にないアイテムは連結されたオブジェクトから取得を試みます。両方にアイテムが存在しマージ可能なオブジェクトの場合は、それぞれをディープクローンしたものをマージして返します。マージにはBitsmistJSのディープマージ用の関数が使用されます。
どちらのストアにも存在しない場合は、defaultValueが返されます。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
key 必須 | String | 取得するキーを指定します。 |
defaultValue | * | キーが存在しない場合に返す値を指定します。 |
戻り値
指定されたキーの値です。
has(key)
型:Boolean
指定されたキーが存在するかを返します。他のストアに連結されている場合、自身にないアイテムは連結されたオブジェクトから取得を試みます。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
key 必須 | String | 存在を確認したいキーを指定します。 |
戻り値
キーが存在する場合はTrue、存在しない場合はFalseを返します。
merge(value, merger, options)
型:Undefined
現在保持しているアイテムに、引数で渡されたオブジェクトの内容をマージします。連結されている場合、デフォルトでは自身のアイテムにマージしますが、コンストラクタのオプション、またはoptions引数で“writeThrough”オプションをTrueにセットした場合、自身ではなく連結先のストアを書き換えます。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
value 必須 | Object/ Array of objects | マージするオブジェクトを指定します。オブジェクトの配列を渡すこともできます。その場合は、配列内の全てのオブジェクトが順にマージされます。 |
merger | Function | マージする際に使用する関数を指定します。指定がない場合は、mergerプロパティにセットされているマージ関数が使用されます。 |
options | Object | セット時のオプションです。以下のキーがあります。 |
“writeThrough” | Boolean | Trueの場合、連結先のストアにセットします。 |
戻り値
なし。
set(key, value, options)
型:Undefined
keyパラメータで指定された項目に値をセットします。指定されたキーが存在しない場合は、自動的に作成されます。 連結されている場合、デフォルトでは自身のアイテムにセットしますが、コンストラクタのオプション、またはoptions引数で“writeThrough”オプションをTrueにセットした場合、自身ではなく連結先のストアを書き換えます。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
key 必須 | String | 値をセットするキーを指定します。 |
value 必須 | * | セットする値を指定します。 |
options | Object | セット時のオプションです。以下のキーがあります。 |
“writeThrough” | Boolean | Trueの場合、連結先のストアにセットします。 |
戻り値
なし。