gpt4 book ai didi

javascript - 如何覆盖传递给函数的对象中的默认参数?

转载 作者:行者123 更新时间:2023-11-30 08:26:05 25 4
gpt4 key购买 nike

创建了一个带有一些参数的 defaultOptions 对象。

const defaultOptions =  {
name: 'Adrian',
city: 'Paris',
job: 'Designer',
}

此函数根据参数创建一个句子。

function makeSentence(defaultOptions) {
console.log('My name is ' + defaultOptions.name + ' and I come from ' + defaultOptions.city + ' and I am a ' + defaultOptions.job + '.');
}

当使用 defaultOptions 调用时,它会按如下方式记录到控制台:

makeSentence(defaultOptions);
// My name is Adrian and I come from Paris and I am a Designer.

我希望能够做的是覆盖一些参数以获得如下结果:

makeSentence(defaultOptions, 'Michael');
// My name is Michael and I come from Paris and I am a Designer.

编辑:成功修改 Patrick Roberts 和 Anamul Hasan 的答案

defaultOptions 对象保持不变。从 params 创建句子的函数变为:

function makeSentence(defaultOptions) {
var options = Object.assign({}, defaultOptions, options);
console.log('My name is ' + options.name + ' and I come from ' + options.city + ' and I am a ' + options.job + '.');
}

覆盖默认参数:

makeSentence({name: 'Michael'}); // overrides only the name attr. 

最佳答案

这应该有效。这不会覆盖 defaultOptions,而是复制值并替换它。

makeSentence(Object.assign({},defaultOptions,{name:"Michael"}))

关于javascript - 如何覆盖传递给函数的对象中的默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45423632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com