如何在javascript中处理此默认参数?

时间:2019-07-18 15:33:02

标签: javascript node.js

我有一个具有两个默认参数和一个常规参数的函数 参数。

var Fields = function ($content, result = failedObject, job = true) 
{
    ...
}  

当我调用Fields($content,job)时,此处的job可以为true或false,结果参数采用的是job值而不是第三个参数。如果使用Fields($content,result),效果很好。

任何解决这种情况的好方法。

5 个答案:

答案 0 :(得分:2)

您将调用Fields($content, undefined, job)以使用参数result的默认值

答案 1 :(得分:1)

您可以使用 destructed 参数:

var Fields = function ($content, { result = failedObject, job = true } = { }) {
    ...
}

然后,当您调用函数时:

const data = { result: anotherObject, job = false };
Fields('toto', data);

或者,在您的特定情况下:

const data = { job = false };
Fields('toto', data); // result still is a failedObject

答案 2 :(得分:1)

如果我正确理解了您的问题,则javascript本身不支持命名参数,因此您可以通过Fields($content, undefined, job)

进行调用

或使用对象作为函数的参数,而不是3个参数。

答案 3 :(得分:0)

传递空/未定义/空:

Fields($ content,,job);

答案 4 :(得分:-1)

您必须切换顺序(如下所示),或使用数组并处理内部函数。

var Fields = function ($content, job = true, result = failedObject, ) 
     {
     }