Я изучаю деструктуризацию, и у меня был быстрый запрос о том, как ссылаться на элементы массива.
Я деструктурирую вложенный массив внутри объекта в параметре функции, используя:
function ajaxOptions({
url,
headers: [
header0 ="Content-Type: text/plain",
...otherHeaders
] = [],
data
} = {}) {
//... function body
}
, который дает значение по умолчанию для первого элемента, header0
и распространяет другие элементы массива.
Но если бы у меня был объект настроек:
var settings = {
url: 'http://someothersite.com',
data: 50,
callback: sayHello,
headers: [, 'Header2', 'Header3']
}
и передал его в ajaxOptions(settings)
. Я не могу использовать header0
в объекте настроек для ссылки на элемент массива, деструктурированный в ajaxOptions, могу я? Другими словами, я не могу использовать его в качестве именованного аргумента, например «url», «data» и «callback»?
Надеюсь, это имеет смысл. Вот полный код, если это поможет:
function ajaxOptions({
url: url = "http://www.example.com",
method: method = "post",
headers: [
header0 ="Content-Type: text/plain",
...otherHeaders
] = [],
data: data,
callback: callback
} = {}) {
return { url, method, headers: [header0, ...otherHeaders], data, callback};
}
function sayHello(){
console.log('hello');
}
var defaults = ajaxOptions();
var settings = {
url: 'http://someothersite.com',
data: 50,
callback: sayHello,
headers: [, header0 = 'New Header', 'Header2', 'Header3']
}
console.log(ajaxOptions(settings));
Спасибо