我有一个具有两个默认参数和一个常规参数的函数 参数。
var Fields = function ($content, result = failedObject, job = true)
{
...
}
当我调用Fields($content,job)
时,此处的job可以为true或false,结果参数采用的是job值而不是第三个参数。如果使用Fields($content,result)
,效果很好。
任何解决这种情况的好方法。
答案 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, )
{
}