Usando function o
console.log(this);
mostra 3 funções, porém usando arrow function mostra apenas a function lista.
Porque isso ocorre? Segue:
Usando function
module.exports = function() {
return function(connection) {
this.lista = function(callback) {
connection.query('select * from livros', callback);
};
console.log(this);
return this;
};
};
log
{ dbConnectionFactory: [Function: createDbConnection],
produtosBanco: [Function],
lista: [Function] }
Usando arrow function:
module.exports = () => {
return connection => {
this.lista = callback => {
connection.query('select * from livros', callback);
};
console.log(this);
return this;
};
};
log
{ lista: [Function] }