Bem, você provavelmente já ouviu falar sobre objetos em JavaScript e como eles são importantes para entender a linguagem.
Os objetos tornam o JS extremamente legível e útil por causa de seu modelo “chave”: “valor”. Mas o que quero destacar é que a seção "valor" aceita não apenas uma string simples, mas sim outro objeto, que por sua vez pode ser outro objeto e assim por diante. Por exemplo:
const character = { name:"Arthur Morgan", age:24, face: { hairSize:5, eyesColor: "blue", } }
Este trecho mostra que o rosto é um objeto e também um personagem. É perfeitamente normal fazer isso, e muitas APIs complexas lidam com dados como esse, agrupando-os continuamente quando for necessário.
Mas o verdadeiro poder dos objetos depende de funções, e este problema do Leet Code lida com isso, além de nos dar a essência de como as bibliotecas de teste funcionam nos bastidores. Basicamente você precisa de uma função que valide se um valor é igual ao esperado ou não: toBe() e notToBe(). Para fazer isso, podemos retornar um objeto com essas funções. A propósito, usar funções de seta torna-o mais bonito e direto.
Aqui está a resposta.
function expect(val) { function toBe(anotherValue) { if (val === anotherValue) { return true; } throw Error("Not Equal"); } function notToBe(anotherValue) { if (val !== anotherValue) { return true; } throw Error("Equal"); } return { toBe: (anotherValue) => toBe(anotherValue), notToBe: (anotherValue) => notToBe(anotherValue), }; }
Podemos vê-lo rodando rapidamente usando outro objeto: o famoso console e seu log de funções.
console.log(expect(5).toBe(null)); // give us an error "Not Equal", because 5 is not null
Observe que o fato de retornar um objeto nos dá a liberdade de usar expect() e logo em seguida, .toBe(). Isso porque retornamos um objeto e acessamos imediatamente a propriedade toBe, que é uma função.
Este problema de código Leet é uma excelente maneira de ver como objetos e funções podem funcionar juntos e construir coisas incríveis em JavaScript. Espero que você tenha gostado :)
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3