javascript - 如何将对象作为默认参数传递给 ecmascript 中的函数?
问题描述
我有一个需要传递给方法的对象。大多数情况下,这个对象是相同的,但有时应该更改为调用方法提供的值
考虑我有方法称为_method
called_method = () => {
const output = {
key1: "value1";
}
return output;
}
如果该方法被调用如下
called_method();
它应该像方法中一样采用输出值
但如果它被称为 const output2 = { key2: "value2", } called_method(output2);
那么它应该考虑返回输出2。我该怎么做?
我们在方法中有默认参数为某个值。我怎样才能对对象做同样的事情。谢谢
解决方案
使用函数的默认参数,例如 -
function called_method(output = {key1: 'value1'}) {
return output;
}
console.log(called_method()); // outputs - {key1: 'value1'}
console.log(called_method({key: 'newvalue'})); // outputs - {key: 'newvalue'}
但是,如果您的默认参数是一个大对象,则将其存储在函数之外,就像这样..
const defaultOutput = {
key1: 'value1',
key2: 'value2'
};
function called_method(output) {
if(output) return output;
return defaultOutput;
}
console.log(called_method()); // outputs - {key1: 'value1'}
console.log(called_method({key: 'newvalue'})); // outputs - {key: 'newvalue'}
推荐阅读
- azure - 如何在超级账本结构中设置多云架构?
- python - 谁能解释一下seaborn的set_context()?
- android - 如何使用 kotlin 将片段名称与当前月份进行比较?
- javascript - 如何修复未捕获的类型错误:无法读取未定义的属性“名称”
- c# - 在 Visual Studio C# 中使用文本框过滤 DataGridView
- go - 无法将 json 数据解组为 go 中的结构(无法将数组解组为 Go 结构字段)
- featuretools - 我在哪里可以找到 dfs [featuretools] 默认返回的功能
- azure - Azure 搜索无法找到 PDF 文件中文本的位置和突出显示
- javascript - 在另一个 httprequest 中使用来自一个 httprequest 的 JSON 值
- slack-api - Slack 事件 API:从不接收“im_created”事件