JavaScript。闭包和传递的参数

时间:2019-03-04 18:09:12

标签: javascript closures

我们有一个功能:

function f (a, b, c) {
function sum (a, b) {
return a + b;
}
}

重写如下:

  1. 如果未传递参数a和b,则默认情况下它们等于2和3。
  2. 如果传递了参数c并且它是一个函数,则它将在调用函数sum之后运行。
  3. 函数f必须返回函数参数c的结果(如果存在)或函数求和的结果。

1 个答案:

答案 0 :(得分:0)

如果我能很好地理解您的问题,那应该没事:

function f (a = 2, b = 3, c) {
    function sum(a, b) {
        return a + b;
    }
    let s =  sum(a,b);
    return c instanceof Function ? c() : s;
}

console.log(f());
console.log(f(7,8));
console.log(f(9,10, ()=>11));

我们在这里使用ternary operatorinstanceof operatorarrow function