50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
|
---
|
|||
|
title: Use Destructuring Assignment to Pass an Object as a Function's Parameters
|
|||
|
localeTitle: Назначение Destructuring для передачи объекта в качестве параметра функции
|
|||
|
---
|
|||
|
## Назначение Destructuring для передачи объекта в качестве параметра функции
|
|||
|
|
|||
|
Вы можете передать весь объект, а затем выбрать нужные вам атрибуты, используя `.` оператор. Но ES6 предлагает более элегантный вариант!
|
|||
|
|
|||
|
## Подсказка 1:
|
|||
|
|
|||
|
Избавьтесь от `stats` и посмотрите, можете ли вы ее разрушить. Нам нужно `max` и `min` в `stats` .
|
|||
|
|
|||
|
## Предупреждение о спойлере - решения впереди!
|
|||
|
|
|||
|
## Решение 1:
|
|||
|
|
|||
|
```javascript
|
|||
|
const half = (function() {
|
|||
|
"use strict"; // do not change this line
|
|||
|
|
|||
|
// change code below this line
|
|||
|
return function half({max, min}) {
|
|||
|
// use function argument destructuring
|
|||
|
return (max + min) / 2.0;
|
|||
|
};
|
|||
|
// change code above this line
|
|||
|
|
|||
|
})();
|
|||
|
```
|
|||
|
|
|||
|
Обратите внимание, что мы разрушаем `stats` чтобы передать две ее атрибуты - `max` и `min` - в функцию. Не забудьте изменить второй оператор возврата. Измените `stats.max` на `max` и измените `stats.min` на `min` .
|
|||
|
|
|||
|
## Решение 2:
|
|||
|
|
|||
|
Вот еще одно решение, которое работает. Не большая разница, кроме того, что функция не имеет имени.
|
|||
|
|
|||
|
```javascript
|
|||
|
const half = (function() {
|
|||
|
"use strict"; // do not change this line
|
|||
|
|
|||
|
// change code below this line
|
|||
|
return (({max, min}) => {
|
|||
|
// use function argument destructuring
|
|||
|
return (max + min) / 2.0;
|
|||
|
});
|
|||
|
// change code above this line
|
|||
|
|
|||
|
})();
|
|||
|
|
|||
|
```
|