Обозначение функции JS [дубликат]

Непривилегированный пользователь (не root) не может открыть прослушивающий сокет на портах ниже 1024.

3
задан Shailesh Vaishampayan 27 June 2016 в 23:14
поделиться

4 ответа

Если вы используете его и вызываете функцию без параметров, она работает:

function drawES6Chart({size = 'big', cords = { x: 0, y: 0 }, radius = 25} = {}) {
  console.log(size, cords, radius);
 // do some chart drawing
}

drawES6Chart();

, если нет, возникает ошибка:

TypeError: невозможно преобразовать undefined в объект

function drawES6Chart({size = 'big', cords = { x: 0, y: 0 }, radius = 25}) {
  console.log(size, cords, radius);
 // do some chart drawing
}

drawES6Chart();

8
ответ дан Jose Hermosilla Rodrigo 16 August 2018 в 05:34
поделиться

Деструктурирование по умолчанию имеет значение только при передаче объекта, который не имеет соответствующих свойств. = {} по умолчанию для всего параметра позволяет вообще не пропускать (пустой) объект.

Он делает drawES6Chart() эквивалентным drawES6Chart({}).

5
ответ дан Bergi 16 August 2018 в 05:34
поделиться

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

function drawES6Chart({size = 'big', cords = { x: 0, y: 0 }, radius = 25} = {}) {
}

То, что в псевдокоде будет:

function drawES6Chart({**first argument**} = {**default value for first argument**}) {
}
4
ответ дан Fausto NA 16 August 2018 в 05:34
поделиться

Это значение по умолчанию для параметра функции. Без использования интерпретатора = {} JavaScript интерпретирует ошибку, когда объект не передается функции, поскольку он не может разрушить значение undefined.

2
ответ дан undefined 16 August 2018 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: