-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mix-in APIの追加(h5.mixin空間) #300
Comments
API設計を変更します。 h5.u.obj.mix()関数は作成せず、h5.mixin.createMixin(moduleObject)関数を作成します。 また、hasInterface()は、引数で渡されたobjectがmoduleObjectで指定された全てのプロパティを持つかどうかを判定します。 今回のバージョンでは、moduleObjectが持つことができるのは、関数、数値リテラル、文字列リテラル、ブール値リテラル、nullのみとします。値がundefinedとなっているプロパティは、存在しても無視することとします。 例)EventDispatcherの場合:
|
h5.mixinのテストケース作成しました。 hifive#268 h5.mixin.eventDispatcherを作成しました。 EventDispatcherをh5internalに公開してh5.mixin.jsで使用しています。 h5.mixin.eventDispatcherのテストは未追加です。
mixinはmixinモジュールを作るのではなくutilモジュールに含めてビルドされるようにしました。
@fukudayasuo |
createItemしたitemが持つEventDispatcherのメソッドと比較して判定するのではなく、EventDispatcherのメソッドを持っているかどうかを判定するようにしました。
mixinのエラーコードをhifiveのページに追記しました。 |
hasInstanceは間違いです。インターフェースを持つかどうかの判定のため、hasInterfaceが正しいです。 変数名の変更 eventDispatcherPrototype→eventDispatcherModule
テストケースのアサーションで、actual(実行結果)とexpect(予想)が逆になっていた箇所があるので修正します |
Mix-inを行うAPIを追加する。h5.u.objにmix()関数を追加する。
mix関数はtarget, mixinの2つの引数をとる。
target
mixを行うオブジェクト。
mixin
特定の機能セットを持ち、ターゲットに提供するミックスイン。
この引数には、特定の処理を実行する、
function mixin(target)
というシグネチャの関数を渡すことを想定する。この関数に渡すtargetは、mixを行うオブジェクト(つまり第1引数)である。
この関数は、渡されたtargetに対して必要な関数プロパティを追加する責任を持つ。
The text was updated successfully, but these errors were encountered: