3

3つの引数を持つ関数をコーディングしましたが、そのうちの1つはコールバック関数です。コールバック引数なしで別の関数をコーディングせずに、コールバックをオプションの引数にするにはどうすればよいですか?

function myFunction(arg1, arg2, callback){
    // do something

    // callback() if it has been passed
}
4

2 に答える 2

20

コールバックが関数であることを確認してから、呼び出します。

function myFunction(arg1, arg2, callback){
    // do something

    typeof callback == "function" && callback();
}

呼び出しをより細かく制御したい場合は、、、(目標を達成するものは何でも)を使用しcall()てくださいapply()bind()

于 2012-08-30T07:16:05.917 に答える
6

簡単です。呼び出す前に、コールバックが定義されているかどうかを確認してください。

function myFunction(arg1, arg2, callback){
    // do something

    if (callback) {
        callback();
    }
}
于 2012-08-30T07:16:44.683 に答える