Pure functions no JavaScript

William Calderipe
Aug 29, 2017 · 1 min read

O que são funções puras?

Uma função pura não depende e não modifica o estado de variáveis fora do seu escopo. (simples assim!)

Em suma, uma função pura sempre retorna o mesmo valor para os parâmetros passando. Sua execução nunca depende do estado da aplicação.

E como fica isso no JavaScript?

Antes vamos ver a implementação de uma função impura.

Note que toda vez que a função addOne é chamada ela altera o estado da variável value que fica fora do seu escopo e isso é o que a torna impura.

Não importa o valor que a função receba como argumento mesmo que isso seja um valor arbitrário, como por exemplo, addOne([‘batata’, [], 1, {}]) ela sempre retornará o mesmo valor. (‘batata,,1,[object Object]1’)

Vantagens de usar funções puras

Funções puras não possuem nenhum efeito colateral, ou seja, ela não irá alterar o estado da aplicação que esteja fora do seu escopo e isso significa maior controle sobre o código que está sendo escrito.

É fácil testar funções puras unitariamente já que não existe nenhum contexto a ser considerado. Somente entrada e saída de dados.

Com o mínimo de boas práticas na hora de escreve-las, sempre serão simples e fáceis de entender porque a única coisa que deve ser focado é o seu retorno.

)

    William Calderipe

    Software Engineer na ThoughtWorks

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade