从对象调用函数的Javascript OR语句

时间:2014-10-31 19:59:21

标签: javascript function parameters

我想看看是否有一个名字(这是一个不好的做法?):

var callback = function(error, data) {
    var method = error ? 'handleError' : 'handleSuccess';
    object[method](error || data, action);
};

如果出现错误,object.handleError将使用错误操作,假设我不关心错误之后的任何其他参数错误

另一方面,如果没有错误,object.handleSuccess将使用数据动作

1 个答案:

答案 0 :(得分:2)

它是null-coalescing (Elvis) operation。这不是坏习惯,但在这种情况下,我认为写出if / else比较清楚,因为你无论如何要进行两次比较检查。这样你也可以省略第二个参数。

var callback = function(error, data) {
    if(error){
        object.handleError(error);
    else{
        object.handleSuccess(data,action);
    }
};