首页 > 解决方案 > 如何将对象作为默认参数传递给 ecmascript 中的函数?

问题描述

我有一个需要传递给方法的对象。大多数情况下,这个对象是相同的,但有时应该更改为调用方法提供的值

考虑我有方法称为_method

called_method  = ()  => {
    const output = {
        key1: "value1";
    }
    return output;
}

如果该方法被调用如下

called_method(); 

它应该像方法中一样采用输出值

但如果它被称为 const output2 = { key2: "value2", } called_method(output2);

那么它应该考虑返回输出2。我该怎么做?

我们在方法中有默认参数为某个值。我怎样才能对对象做同样的事情。谢谢

标签: javascriptecmascript-6

解决方案


使用函数的默认参数,例如 -

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'}


推荐阅读