イントラマートで名前付き引数と可変個引数の関数を実現する
イントラマートので名前付き引数と可変個引数の関数を実現する方法です。
イントラマートとは
株式会社NTTデータイントラマート社が開発・販売している、Webアプリケーションシステムのシステム共通基盤(統合型フレームワーク)で、国内の著名企業を中心に6,000社以上に導入されています。
イントラマートを導入することにより、Webシステム開発における短納期・低コスト・標準化推進・品質向上を実現できます。
詳しくはこちらをご覧ください。
イントラマートで名前付き引数と可変個引数の関数を実現する
イントラマートで名前付き引数と可変個引数の関数を実現方法です。
呼び出し側。(ファンクションコンテナだけです。)
var logger = Logger.getLogger(); function init( request ) { sub_func1({ arg1:10, arg2:11 ,arg3:12, arg4:13 }) ; //名前付き引数&可変個引数 sub_func2({ arg1:10, arg2:11 ,arg3:12, arg4:13 }) ; //可変個引数 sub_func2({ arg1:10, arg4:11, arg3:12, arg6:13 }) ; //可変個引数 }
呼び出される側。
function sub_func1( args ) { for( var para in args ){ logger.debug( para + "=[" + args[ para ] + "]" ) ; } } function sub_func2( args ) { if( !isUndefined( args[ "arg1" ] )){ logger.debug( "arg1=[" + args[ "arg1" ] + "]" ) ; } if( !isUndefined( args[ "arg2" ] )){ logger.debug( "arg1=[" + args[ "arg2" ] + "]" ) ; } if( !isUndefined( args[ "arg3" ] )){ logger.debug( "arg3=[" + args[ "arg3" ] + "]" ) ; } if( !isUndefined( args[ "arg4" ] )){ logger.debug( "arg4=[" + args[ "arg4" ] + "]" ) ; } if( !isUndefined( args[ "arg5" ] )){ logger.debug( "arg5=[" + args[ "arg5" ] + "]" ) ; } }
<<sub_func1()の実行結果>> [DEBUG][2012/05/08 15:07:36.080]arg1=[10] [DEBUG][2012/05/08 15:07:36.081]arg2=[11] [DEBUG][2012/05/08 15:07:36.083]arg3=[12] [DEBUG][2012/05/08 15:07:36.084]arg4=[13] <<sub_func2()の実行結果>> [DEBUG][2012/05/08 15:07:36.085]arg1=[10] [DEBUG][2012/05/08 15:07:36.086]arg1=[11] [DEBUG][2012/05/08 15:07:36.087]arg3=[12] [DEBUG][2012/05/08 15:07:36.088]arg4=[13] <<sub_func2()の実行結果>> [DEBUG][2012/05/08 15:07:36.089]arg1=[10] [DEBUG][2012/05/08 15:07:36.105]arg3=[12] [DEBUG][2012/05/08 15:07:36.106]arg4=[11]
sub_func1()は渡された引数分、その内容をログに出力します。
sub_func2()は渡された引数の中で表示したいもののみ、その内容をログに出力します。
どちらの関数も引数を渡す順番に制限はありません。