xrea-banner xreaad

AspectJS

namespace kilrey; / JavaScript / 自作ライブラリ / AspectJS

次のページ(JSPath)へ

JavaScriptでアスペクト志向してしまおうというライブラリです。 (aspectjs.js download)
元となる関数とアスペクトを受け取って アスペクトを適用した後の関数を返します。 適用対象の関数を探す機能はありません (そのうち作るつもりではありますが)。
ちなみにライセンスは 前述のソースファイルにも書いてあるように MIT License です。 著作権と許諾の表記を消さない限り自由に使って構いません。

このページを読み込んだ際に表示された ポップアップがサンプルです。 使い方としてはまず

<script type="text/javascript" src="aspectjs.js">
</script">
    

としてaspectjs.jsを読み込みます。 するとグローバル名前空間にkilreyというオブジェクトが作られ、 そのプロパティとしてkilrey.wrapという関数が作られます。 このwrap関数を

<script type="text/javascript">
var func = kilrey.wrap(alert, undefined, undefined,
                       function(original, args) {
                         original("AspectJS Wrapped["+args[0]+"]");
                       });
func("TEST");
</script">
    

のように呼び出して操作後の関数を得ます。
wrap関数は (original, before, after, arround) という引数を取り、 任意個の引数を取る関数を返します。 以下ではwrapの返り値の関数を実行する際に 渡される引数を配列化したものをargsと呼びます。 originalは操作の対象となる関数です。 beforeはoriginalを呼び出す前に呼び出される関数で、 before(original, args)のように呼び出されます。 afterはoriginalを呼び出した後に呼び出される関数で、 after(original, args)のように呼び出されます。 arroundはoriginalの代わりに呼び出される関数で、 arround(original, args)のように呼び出されます。

次のページ(JSPath)へ