Далее на Есть ли способ предоставить именованные параметры в вызове функции в JavaScript?
Я делаю что-то вроде этого:

function myFunction({param1, param2}={}){ // ...function body... } myFunction({ param1 : 70, param2 : 175}); 

Так что мне было интересно, есть ли способ сделать это:

 function myFunction(params = {param1, param2}={}){ doSomething(...params) } 

Я думаю, ясно, что я хочу иметь возможность распространять объект параметра внутри другой функции вместо того, чтобы указывать каждый параметр, но делать это так

 params = {param1, param2}={} 

приведет к ошибкам, говоря, что param1 и param2 не определены !, так что я знаю, что это не тот путь, так что есть идеи, как этого можно достичь или, возможно, это вообще невозможно?

Это то, что вы ищете?

 function myFunction (params) { const { param1 = /* default value */, param2 = /* default value */ } = params; doSomething(params); } 

Обновление № 1

Как вы заявили, чтобы получить помощь IDE, вы можете не использовать ответ выше. В качестве альтернативы вы можете использовать объект arguments и передать его в doSomething с помощью метода apply . Также обратите внимание, что arguments недоступны в функциях стрелок.

 function myFunction ({param1, param2} = {}) { // forward all arguments including "this" to "doSomething" doSomething.apply(this, arguments); } 

Вы можете распространять значения params . В качестве альтернативы вы можете использовать Object.entries несколькими способами:

 const doSomething = (...params) ={amp}gt; console.log(params); const doSomethingElse = (args = [...[key, value]]) ={amp}gt; console.log(Object.fromEntries(args)); const doSomethingElse2 = (args = [...[key, value]]) ={amp}gt; args.forEach( ([key, value]) ={amp}gt; console.log(`${key}: ${value}`) ); function myFunction(params = {param1, param2} = {}){ console.log(`*doSomething`); doSomething(...Object.values(params)); console.log(`*doSomethingElse`); doSomethingElse(Object.entries(params)); console.log(`*doSomethingElse2`); doSomethingElse2(Object.entries(params)); } myFunction({param1: 123, param2: 456}); 
 .as-console-wrapper { top: 0; max-height: 100% !important; }