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中一个对象中的默认破坏函数参数的主要内容,如果未能解决你的问题,请参考以下文章