将传递的函数参数与默认参数合并

问题描述 投票:0回答:1

自最新版本的JavaScript以来,合并默认函数参数的最有效方法是什么?

我想实现的目标:

var defaultParam = {a: 1};

function foo(param = defaultParam) {
   // desired result : param = {a: 1, b: 2}
}

var passedParam = {b: 2};
foo(passedParam)
javascript function parameter-passing
1个回答
0
投票

相反,在函数的第一行上创建一个新对象,放入默认值,然后用传递的对象(如果有)中的属性覆盖其属性:

var defaultParam = {a: 1};

function foo(param) {
    const cleanParam = { ...defaultParam, ...param };
    console.log(cleanParam);
}

var passedParam = {b: 2};
foo(passedParam)

0
投票

您可以在函数内部使用它,而不能将其用作函数的默认参数:

var defaultParam = {a: 1};

function foo(param) {
   param = {
   ...defaultParam,
   ...param
   }
   console.log(param);
}

var passedParam = {b: 2};
foo(passedParam)
© www.soinside.com 2019 - 2024. All rights reserved.