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

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

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

所以我有这个功能头:

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

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

有这么好的干净方法吗?

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

javascript ecmascript-6
3个回答
1
投票

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

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

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


0
投票

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

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);

codepen- https://codepen.io/nagasai/pen/KxBmod?editors=1011


-1
投票

你所能做的就是:

function coolFunctionName({test1 = "foo", test2 = "bar"}) {
    let arguments = { test1, test2 };
    /* Do whatever you want with arguments */
}
© www.soinside.com 2019 - 2024. All rights reserved.