3

我编写了一个函数,它有 3 个参数,其中一个是回调函数。如何使回调成为可选参数,而无需在没有回调参数的情况下编写另一个函数?

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 回答