Javascript - 为函数参数中的对象可选字段设置默认值
Javascript - Set default values for object optional fields in function params
function myFunction(data, options = { merge: true, cache: false }) {
console.log({ merge: options.merge });
console.log({ cache: options.cache });
console.log("----------------------");
}
myFunction({}, { cache: true });
myFunction({}, { merge: false });
myFunction({});
在上面的示例中,我该怎么做才能避免丢失可选字段“merge”的默认值?
其中一种方式:
function myFunction(data, options) {
options = {merge: true, cache: true, ...options}
console.log({merge: options.merge});
console.log({cache: options.cache});
console.log("----------------------");
}
您可以使用解构赋值符号的默认值赋值
{ merge = true, cache = false } = {}
function myFunction(data, { merge = true, cache = false } = {}) {
console.log({ merge: merge });
console.log({ cache: cache });
console.log("----------------------");
}
myFunction({}, { cache: true });
myFunction({}, { merge: false });
myFunction({});
另一种方法是使用解构的后备值功能
function myFunction(data, options = {}) {
const {merge = true, cache = true} = options;
console.log({merge});
console.log({cache});
console.log("----------------------");
}
function myFunction(data, options = { merge: true, cache: false }) {
console.log({ merge: options.merge });
console.log({ cache: options.cache });
console.log("----------------------");
}
myFunction({}, { cache: true });
myFunction({}, { merge: false });
myFunction({});
在上面的示例中,我该怎么做才能避免丢失可选字段“merge”的默认值?
其中一种方式:
function myFunction(data, options) {
options = {merge: true, cache: true, ...options}
console.log({merge: options.merge});
console.log({cache: options.cache});
console.log("----------------------");
}
您可以使用解构赋值符号的默认值赋值
{ merge = true, cache = false } = {}
function myFunction(data, { merge = true, cache = false } = {}) {
console.log({ merge: merge });
console.log({ cache: cache });
console.log("----------------------");
}
myFunction({}, { cache: true });
myFunction({}, { merge: false });
myFunction({});
另一种方法是使用解构的后备值功能
function myFunction(data, options = {}) {
const {merge = true, cache = true} = options;
console.log({merge});
console.log({cache});
console.log("----------------------");
}