クロージャも、引数を扱える。
構文
function 関数( 仮引数C ) {
return function ( 仮引数D ) { // 無名関数
// 仮引数Cを参照
}
}
var 変数B = 関数( 実引数C );
変数B( 実引数D ); // 関数内で定義した無名関数を呼び出す
return function ( 仮引数D ) { // 無名関数
// 仮引数Cを参照
}
}
var 変数B = 関数( 実引数C );
変数B( 実引数D ); // 関数内で定義した無名関数を呼び出す
サンプル
<script type="text/javascript">
function multiplyer( $numA ) {
return function( $numB ) { // 無名関数
return $numA * $numB;
}
}
var $double = multiplyer( 2 ); // 2倍にする
var $threeTimes = multiplyer( 3 ); // 3倍にする
var $tenTimes = multiplyer( 10 ); // 10倍にする
document.write( $double( 5 ) + "<br />" );
document.write( $threeTimes( 5 ) + "<br />" );
document.write( $tenTimes( 5 ) + "<br />" );
</script>
function multiplyer( $numA ) {
return function( $numB ) { // 無名関数
return $numA * $numB;
}
}
var $double = multiplyer( 2 ); // 2倍にする
var $threeTimes = multiplyer( 3 ); // 3倍にする
var $tenTimes = multiplyer( 10 ); // 10倍にする
document.write( $double( 5 ) + "<br />" );
document.write( $threeTimes( 5 ) + "<br />" );
document.write( $tenTimes( 5 ) + "<br />" );
</script>
↓↓↓出力結果↓↓↓