JavaScript中一个对象中的默认破坏函数参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中一个对象中的默认破坏函数参数相关的知识,希望对你有一定的参考价值。

是否有可能在一个对象中访问所有被破坏的函数参数?

所以我有这个功能头:

function coolFunctionName({test1 = "foo", test2 = "bar"})

我想在一个对象中访问它们。 arguments不起作用,因为没有存储默认参数,这些参数在函数调用中没有值。

有这么好的干净方法吗?

编辑:我不需要破坏参数。我只想将所有这些都放在一个对象中。

答案

受到Faly回答的启发,我认为我有“最干净”的解决方案:

function coolFunctionName(options = {}){
    options = Object.assign({
        test1: "foo",
        test2: "bar
    }, options);
}

我在一个对象中有参数,我没有写多个值名称。我对此并不满意,因为它不在函数头中,但它是我发现的最佳解决方案。

另一答案

要达到预期的效果,请使用以下选项在功能内设置默认值

function coolFunctionName(x){
  x.test1 = x.test1 || 'foo'
  x.test2 = x.test2 || 'bar'
  console.log(x)
}
let z ={}
coolFunctionName(z);
let y ={test1:"zzz", test2:"yyy"}
coolFunctionName(y);
另一答案

你所能做的就是:

function coolFunctionName({test1 = "foo", test2 = "bar"}) {
    let arguments = { test1, test2 };
    /* Do whatever you want with arguments */
}

以上是关于JavaScript中一个对象中的默认破坏函数参数的主要内容,如果未能解决你的问题,请参考以下文章

具有多个参数的函数中的 Javascript 默认参数

Javascript - Jquery - 函数参数

JavaScript Javascript函数中的默认参数

JavaScript 函数中的默认参数值 [重复]

Javascript的参数详解

JavaScript函数默认参数(完全对象合并)