3
respostas

Sem usar o this

Fiz de uma forma que não precisei usar o 'this'

module.exports = (connection) => {
    connection.read = (callBack) => {
        return connection.query('SELECT * FROM listaLivros', callBack)
    }
    return connection
}
    app.get('/', (req, res) => {
        const connection = dbMySQL('livros')
        const produtos = produtosBanco(connection)

        produtos.read((erro, resultado) => {
            if (erro) throw erro
            res.render('produtos/lista', {
                lista : resultado
            })
        })

        connection.end()
    })

Neste caso, estou usando um paradigma funcional ou imperativo?

3 respostas

Oi Augusto, tudo bem? Vou dizer que está sendo imperativo, você está pegando um objeto que representa uma conexão, e está "empurrando" nele um novo método. Isso não é funcional por que você está mudando o estado do objeto.

Pra ser funcional, você criaria um novo objeto a partir do que entrou e retornaria esse novo objeto.

Eu não recomendaria você sair criando propriedades em objetos que não são do seu domínio.

Oi Wanderson, troquei pelo 'this'

module.exports = (connection) => {
    this.read = (callBack) => {
        return connection.query('SELECT * FROM listaLivros', callBack)
    }
    return this
}

E usando o console.log(this) tive o retorno da função { read: [Function] }, neste caso, o 'this' está dentro da programação funcional ou somente da OO?

Está na OO, mas vale a pena lembrar que você não está trabalhando com classes, que são a base da OO. Você está trabalhando com objetos e funções.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software