• Деструктуризация работает для объектов и массивов

Когда использовать деструктурирование для объектов?

Это полезно, когда вам нужно извлечь/деструктурировать несколько свойств из объекта, чтобы использовать их в текущей области, поэтому вы делаете это в одной строке; вместо нескольких строк.

// Math is a built-in Javascript object
// without destructuring (multiple lines)
const PI = Math.PI;              // note that variable name on the left-side is exactly the same as the object property on the right-side
const E = Math.E;
const SQRT2 = Math.SQRT2;

// with destructuring (one line)
const { PI, E, SQRT2 } = Math;
// example
// destructure Component, Fragment, and useState out of the React API
const { Component, Fragment, useState } = require('react');

// to use useState method, just do it as the following
useState(); 

Деструктурирование объекта, который передается в качестве аргумента функции (так называемые деструктурированные аргументы)

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

Деструктурированный аргумент — это альтернативный способ использования Именованного аргумента в функциях.

const PI = Math.PI;

// object called circle
const circle = {
  label: 'circleX',
  radius: 2, // the property we need to destructure
};

// between the parenthesis, we didn't call the object name: circle
// we just used curly braces to indicate that the function expects an object
// and pass in these curly braces the property name that we're using locally in the circleArea function
const circleArea = ( {radius} ) => (PI * radius * radius).toFixed(2);

// test the result (console.log it)
circleArea(circle); 
// or
circleArea( { radius: 4} );
  • Деструктуризация объекта, который передается в качестве аргумента функции, часто используется для аргумента props в функциях React.
  • Деструктурированные аргументы аналогичны обычным аргументам:
    1. могут иметь значение по умолчанию
    2. могут быть необязательными
  • Если необязательный аргумент не был передан, но имеет значение по умолчанию, будет использоваться значение по умолчанию.

"ссылка"