monaurallab

モノラルラボ

javascript で、イベントハンドラのコールバック関数に引数を渡す時の書き方

タイトルどおりですが、javascriptイベントハンドラのコールバック関数に引数を渡す方法です。

今までは呼び出し時に一度無名関数で囲む、という方法↓でやってたんですが

var callback_func = function(arg) {
    // コールバック処理
    console.log(arg);
};

$('#sample').click(function() {
    callback_func('test');
});

こちら↓でもOKでした、何度も呼び出す場合はこのほうがすっきりしますね。

var callback_func = function(arg) {
    return function (ev) {
        // コールバック処理
        console.log(arg);
    }
};

$('#sample').click(callback_func('test'));

コールバック関数側で function() で囲んで、戻り値を関数にしてしまうという方法です。