イントラマートで名前付き引数と可変個引数の関数を実現する

2018/02/07イントラマートintra-mart ver7.2,スクリプト開発

記事内に広告が含まれています。

イントラマートので名前付き引数と可変個引数の関数を実現する方法です。

イントラマートとは
株式会社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()は渡された引数の中で表示したいもののみ、その内容をログに出力します。
どちらの関数も引数を渡す順番に制限はありません。

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ