javascriptのプラグイン機構のメモ書き

サーバーの負荷監視にプラグイン的な機構を付けたいと思ったんで、Javascript側の実装のメモ書き。
index.html
[javascript]
<script type="text/javascript">
<!–
/**
* プラグインインターフェース
*/
plugin = function(){}
// –>
</script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="loadAverage.js"></script>
<script type="text/javascript">
<!–
$(function(){
//プラグインの実行
for (element in plugin){
if(eval(‘plugin.’ + element + ‘.init !== undefined’)){
eval(‘plugin.’ + element + ‘.init();’);
}
}
});
// –>
</script>
[/javascript]
loadAverage.js
[javascript]
/**
* loadAverage取得
* @date 2014/01/11
* @author まっちゃん
*/
(function(plugin){
plugin.loadaverage = function (){}
plugin.loadaverage.tabName = ‘LoadAverage’;
plugin.loadaverage.tabTitle = ‘LoadAverage’;
plugin.loadaverage.init = function (){
alert(‘ok’);
}
})(plugin);
[/javascript]
jqueryは$()の実行に要るだけなので、別の手段があるのなら別に無くてもいい。
pluginというクラス(オブジェクト)を定義して、プラグインのJSを読み込み。
プラグインのjsはplguinオブジェクトにどんどんメンバを追加していく。
ひと通り定義が終わったら、for inでメンバを列挙して取り出せたメンバの中にinitメンバがあったら実行。
for inでelementにはメンバ名が入ってるようなので、eval使って
[javascript]
eval(‘plugin.’ + element + ‘.init();’);
[/javascript]
としないとダメっぽい。