我是 JS 的新手,我正在尝试学习一些函数基础知识。
我遇到了一个问题,我创建了一个这样的函数:
function someName (element, settings={i:"#1d252c", i2:"#fff"}) {
.......
}
如果我将函数调用为 someName(element)
。 i 和 i2 保留它们的值,但是
如果我像 someName(element,{i:"#3acbda"})
那样调用它,i 的值确实会改变,但是 i2 的值是未定义的,
那么当设置对象不再是默认值时,如何将默认值分配给属性。
因此,当我仅使用 i 分配设置时,i2 只是默认值“#fff”而不是未定义。
最佳答案
一种方法是在第二个地方使用一个额外的变量,在第三个地方你可以解构。(如果你不想显式定义内部函数)
function someName(element, input,settings={i:"#1d252c", i2:"#fff",...input}){
console.log(settings.i)
console.log(settings.i2)
}
someName('hello', {i:'#123'})
someName('hello', {i2:'#123'})
旁注:- 在使用上述技巧时,您需要确保在函数调用中传递的参数总是比我们在函数中定义的少一个。
您还可以在函数和解构中定义设置
function someName(element, input){
const settings={i:"#1d252c", i2:"#fff",...input}
console.log(settings.i)
console.log(settings.i2)
}
someName('hello', {i:'#123'})
someName('hello', {i2:'#123'})
解构的更多用法你可以看here
关于javascript - 将未设置的属性设置为函数中的默认属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54616488/