alguém pode me explicar por que as seguintes funções de duas setas são equivalentes?

geekydude703

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 lengthigual a materials.length; e é por isso que podemos simplesmente retornar length. Isso faz sentido. Obrigado jeff

Jeff Bowman

Isso usa uma atribuição de desestruturação para obter a lengthpropriedade 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}) => lengthdefine o nome lengthpara a lengthpropriedade 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.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

alguém pode me ajudar a entender o que está acontecendo nas seguintes funções?

Javascript: objetos e funções ... Alguém pode explicar por que isso não funciona?

Alguém poderia me explicar por que minha função retorna 0 em vez de 1?

Alguém pode me explicar por que o método de ligação não funciona nesses exemplos

Alguém pode explicar por que minha função de data está me dando uma conversão errada via objeto de data JS?

Alguém pode me explicar por que a var 'health' não é atualizada ao chamar a função updateGame ()

Alguém pode explicar por que / como você não precisa despachar uma ação no criador de ação para funções síncronas?

Alguém pode me explicar por que esse segundo método não atualiza totalmente a string?

Alguém pode me explicar por que a palavra-chave `this`, nessas funções de seta, termina com os valores dados nesses exemplos

Alguém pode me explicar por que a palavra-chave `this`, nessas funções de seta, termina com os valores dados nesses exemplos

Alguém pode me explicar por que o sub () / gsub () do awk funciona assim?

Por que a elevação está errada para minhas coordenadas, alguém pode me explicar

Alguém pode me explicar por que esse código não funciona?

Alguém pode me explicar por que esse código lisp não funciona?

Alguém pode me explicar por que não consigo retornar um ponteiro inteligente?

Alguém pode me explicar o que o stty faz?

Alguém pode me explicar brevemente o que é std :: streampos?

Alguém pode me explicar porque é que a saída, função recursiva C ++

Por que essa afirmação é falsa? Alguém pode explicar

Alguém pode explicar por que isso não funciona?

Alguém pode me explicar essa função recursiva?

Alguém pode me explicar como funciona essa função?

Você pode me explicar a função de "Por que fizemos isso s [i] = novo cliente"

Alguém pode me explicar a magia por trás de FindViewById (1) ou FindViewById (2)?

Por favor, alguém pode me explicar esse código de recursão?

Alguém pode explicar por que essa função recursiva falha?

Alguém pode me explicar o que é o sinal de mais antes das variáveis?

Alguém pode me explicar o que 'como nunca' faz neste pedaço de código?

Alguém pode me explicar o que está acontecendo nesta linha de código MatLAB