Eu sou muito novo em javascript. vi isso no MDN em relação às funções das setas.
Alguém pode me explicar como funciona o segundo? Eu entendo o primeiro. Não tenho certeza porque colocamos comprimento em um objeto e, em seguida, retornamos o comprimento ???
Caso 1 (que eu entendo de como ele se transformou de ES5):
materials.map((material) => {
return material.length;
}); // [8, 6, 7, 9]
Caso 2 (não entendendo o que {length}
está fazendo aqui e também por que retornamos length
:
materials.map(({length}) => length); // [8, 6, 7, 9]
Muito obrigado!
Atualizar:
Então, lendo a resposta de Jeff B. Parece que o segundo está fazendo o seguinte com a desestruturação:
materials.map(({length}) => length)
em que {length}
definirá uma variável var length
igual a materials.length
; e é por isso que podemos simplesmente retornar length
. Isso faz sentido. Obrigado jeff
Isso usa uma atribuição de desestruturação para obter a length
propriedade sem salvar o objeto inteiro. Especificamente, este é um caso de "desestruturação de objetos" .
Por exemplo:
let yourObject = {foo: 1, bar: 2}
let {bar} = yourObject;
// bar now equals 2
Com isso em mente, você pode ver como ({length}) => length
define o nome length
para a length
propriedade do primeiro parâmetro e, em seguida, o retorna imediatamente - tornando as duas expressões equivalentes.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras