Понимание функции стрелки в машинописи - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь понять функции стрелок в машинописи на Функции стрелок

var elements = [
  'Hydrogen',
  'Helium',
  'Lithium',
  'Beryllium'
];

elements.map(function(element) { 
  return element.length; 
}); // [8, 6, 7, 9]

elements.map(element => {
  return element.length;
}); // [8, 6, 7, 9]

elements.map(element => element.length); // [8, 6, 7, 9]

elements.map(({ length }) => length); // [8, 6, 7, 9]

Я понял все, кроме последней строки.Во второй последней строке он принимает одно выражение и возвращает element.length.Эквивалент {return element.length;}.Но последнее утверждение не имеет смысла для меня.

Вещи, которые я не понимаю:

  1. Это захват объекта length.

  2. Если это единственный аргумент, почему он в ().

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Карта разрушает параметр, который передается ей.В этом случае в функцию map передается строка, и строка имеет много свойств, одним из которых является длина.Таким образом, строка является деструктурированной, а ее свойство length устанавливается равным переменной деструктурированной длины.+1 к Джулиану Г ...

0 голосов
/ 23 декабря 2018

Если вы посмотрите на последнюю строку:

elements.map(({ length }) => length); // [8, 6, 7, 9]

есть фигурные скобки {, } вокруг аргумента length.

Это называется присвоением деструктуры объекта:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...