Javascript:如果未将对象传递给函数

时间:2019-01-17 13:48:31

标签: javascript node.js ecmascript-6

在我的快速服务器中,我有一个函数,如果将请求主体传递给它,它会像这样破坏其属性:

export function createProxiedRequestBody({ dateRange, dateFrom, filters },
dateDefault) {
}

它是一个通用函数,传递给它的对象可能是无效的,但显然会引起如下错误:

Cannot read property 'dateRange' of null

是否有一种奇特的JavaScript方法,我可以在参数中忽略这些而不是在函数中编写if块语句?

2 个答案:

答案 0 :(得分:1)

您可以将结构化参数与默认值分配结合使用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters#Destructured_parameter_with_default_value_assignment

function createProxiedRequestBody(
   { dateRange, dateFrom, filters } = {dateRange: null, dateFrom: null, filters: null},
   dateDefault) { 
       console.log('dateRange:' + dateRange);
}

createProxiedRequestBody();  // no error, dateRange === null
createProxiedRequestBody({dateRange: 2});

答案 1 :(得分:0)

您可以将默认值传递给要忽略的参数

类似以下内容

    function foo (x, y = 10) {
        return x + y;
    }
    
    console.log("Ignore y. Sum = "+ foo(10)); //It will ignore y while calling foo function
    console.log("Without ignoring y. Sum = "+ foo(10, 20)); //It assign value to y i.e 20