Oi pessoal, tudo bem?
Fiquei com uma dúvida no Exercício 4 do módulo 5, "manipulando objetos".
A resolução proposta coloca o método "sort" em uma função separada (ordenarAnimais) do cálculo desse sort, que ficou na função "ompararIdadeCrescente". Porém não está claro pra mim como é que o método "sort" é reconhece as variáveis "a" e "b" uma vez que ele não é passado como predicado da função.
Para tentar isolar esse problema, tentei criar um "sort" sem passar o "a" e "b" como predicado e não deu certo. O que pra mim ficou estranho é que isoladamente *não funciona, mas dentro da função proposta funcionou normalmente. Por exemplo, fazendo o sort como abaixo eu tenho um erro de variáveis devido a não declaração do a e b:
animais.sort(a.idade - b.idade)
o correto seria:
animais.sort((a,b) => { a.idade - b.idade});
Enquanto que a resolução do exercício propõe:
animais.sort(comparacao);
E dá certo!
Será que tem uma forma de explicar ou de debugar esse trecho pra que eu possa compreender melhor?
Muuiito Obrigado