Table of Contents

ChainableStore

継承:Store

概要

ChainableStoreはStoreクラスを継承した、他のStoreオブジェクトと連結可能なStoreクラスです。連結された場合、値取得時に自身にないアイテムは連結されたオブジェクトから取得を試みます。両方にアイテムが存在しマージ可能なオブジェクトの場合は、マージしたものが返されます。

このページでは、親クラスと違う箇所のみを説明しています。

プロパティ

localItems

型:Object get

自身が保持しているアイテムのオブジェクトです。連結されている場合は、連結されているものは含まないアイテムを返します。

コンストラクタ

Constructor(options)

パラメータ

パラメータ説明
optionsObjectStoreクラスを初期化する設定情報です。親クラスで設定できるキーに加え、以下のキーがあります。
“chain”StoreこのStoreオブジェクトと連結します。
“writeThrough”BooleanTrueの場合、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
マージするオブジェクトを指定します。オブジェクトの配列を渡すこともできます。その場合は、配列内の全てのオブジェクトが順にマージされます。
mergerFunctionマージする際に使用する関数を指定します。指定がない場合は、mergerプロパティにセットされているマージ関数が使用されます。
optionsObjectセット時のオプションです。以下のキーがあります。
“writeThrough”BooleanTrueの場合、連結先のストアにセットします。

戻り値

なし。


set(key, value, options)

型:Undefined

keyパラメータで指定された項目に値をセットします。指定されたキーが存在しない場合は、自動的に作成されます。 連結されている場合、デフォルトでは自身のアイテムにセットしますが、コンストラクタのオプション、またはoptions引数で“writeThrough”オプションをTrueにセットした場合、自身ではなく連結先のストアを書き換えます。

パラメータ

パラメータ説明
key
必須
String値をセットするキーを指定します。
value
必須
*セットする値を指定します。
optionsObjectセット時のオプションです。以下のキーがあります。
“writeThrough”BooleanTrueの場合、連結先のストアにセットします。

戻り値

なし。