単純なコードで JavaScript モジュール を Mozilla 固有でないコードにします (ブラウザにポーティングする場合など)。eval() は、ユーザの入力に依存しない EXPORTED_SYMBOLS
配列上でのみ使用されるため心配いりません。
function importModule (thatObj) { thatObj = thatObj || window; var EXPORTED_SYMBOLS = [ // シンボルをここに置く ]; // ここにコードを書く... // コードの終わりに: ('i' や 'thatObj' はエクスポートされません!) for (var i=0; i < EXPORTED_SYMBOLS.length; i++) {thatObj[EXPORTED_SYMBOLS[i]] = eval(EXPORTED_SYMBOLS[i]);} }
あるいは、モジュールを一度だけ使用する場合:
(function (thatObj) { thatObj = thatObj || window; var EXPORTED_SYMBOLS = [ // シンボルをここに置く ]; // ここにコードを書く... // コードの終わりに: ('i' や 'thatObj' はエクスポートされません!) for (var i=0; i < EXPORTED_SYMBOLS.length; i++) {thatObj[EXPORTED_SYMBOLS[i]] = eval(EXPORTED_SYMBOLS[i]);} })(); // オブジェクトの引数をここに置けます