JavaScriptの関数宣言で戻り値を関数にしてみます。
例えば以下のようなソースです。
<input type="button" value="ボタン" onclick="a(123);" />
<script type="text/javascript">
<!--
function a(val) {
alert(val);
return function(t){
alert(t);
}
}
// -->
</script>
ボタンを押して上記スクリプトを実行してください。
引数の123がアラートされました。戻り値はアラートされていません。()は関数を実行するという意味があります。
戻り値が関数なら、()をもう一つつけて関数実行する必要があります。
関数の呼び出し方が特徴的です。以下、ソース例です。
このボタンを押すと、123とアラートされ、456とアラートされたと思います。
()を増やし、以下のように記述しているため戻り値の関数も実行されるためです。
<input type="button" value="ボタン" onclick="a(123)(456);" />
関数が関数を返すので
クロージャみたいですが、厳密には違うようです。