Параметры разрушенной функции по умолчанию в одном объекте в JavaScript - PullRequest
0 голосов
/ 14 сентября 2018

есть ли возможность доступа ко ВСЕМ параметрам разрушенной функции в одном объекте?

Итак, у меня есть эта функция:

function coolFunctionName({test1 = "foo", test2 = "bar"})

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

Есть ли хороший и чистый способ сделать это?

РЕДАКТИРОВАТЬ: мне не нужны разрушенные параметры. Я просто хочу, чтобы все они были в одном объекте.

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

Для достижения ожидаемого результата используйте нижеприведенную опцию установки значения по умолчанию внутри функции

function coolFunctionName(x){
  x.test1 = x.test1 || 'foo'
  x.test2 = x.test2 || 'bar'
  console.log(x)
}
let z ={}
coolFunctionName(z);
let y ={test1:"zzz", test2:"yyy"}
coolFunctionName(y);

codepen- https://codepen.io/nagasai/pen/KxBmod?editors=1011

0 голосов
/ 14 сентября 2018

Вдохновленный ответом Фали, я думаю, что у меня есть «самое чистое» решение:

function coolFunctionName(options = {}){
    options = Object.assign({
        test1: "foo",
        test2: "bar
    }, options);
}

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

0 голосов
/ 14 сентября 2018

Все, что вы можете сделать, это:

function coolFunctionName({test1 = "foo", test2 = "bar"}) {
    let arguments = { test1, test2 };
    /* Do whatever you want with arguments */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...