Sou muito iniciante em Javascript e é por esse motivo que quero sua opinião à respeito de uma classe Usuário que desenvolvi só para testes.
Primeiramente, uma classe Usuário padrão:
var User = function(name, email) { var _name = name; var _email = email; this.getName = function() { return _name; }; this.getEmail = function() { return _email; }; this.setName = function(name) { _name = name; return this; }; this.setEmail = function(email) { _email = email; return this; }; }; /* Criando uma instância de User: */ var yan = new User('Yan Gabriel', 'yansilvagabriel@gmail.com'); /* Imprimindo Nome e Email: */ console.log('\nNome: ' + yan.getName() + '\nEmail: ' + yan.getEmail()); /* Mudando Nome e Email: */ yan.setName('Yan Machado').setEmail('yanmachado@gmail.com'); /* Imprimindo Nome e Email: */ console.log('\nNovo Nome: ' + yan.getName() + '\nNovo Email' + yan.getEmail());
Agora a classe Usuário modificada:
var User = function(name, email) { var _information = { name: name, email: email }; var _get = { name: function() { return _information.name; }, email: function() { return _information.email; } } var _set = { name: function(name) { _information.name = name; return this; }, email: function(email) { _information.email = email; return this; } }; var _publics = { get: _get, set: _set }; return _publics; }; /* Criando uma instância de User: */ var yan = new User('Yan Gabriel', 'yansilvagabriel@gmail.com'); /* Imprimindo Nome e Email: */ console.log('\nNome: ' + yan.get.name() + '\nEmail: ' + yan.get.email()); /* Alterando Nome e Email: */ yan.set.name('Yan Machado').email('yanmachado@gmail.com'); /* Imprimindo Nome e Email: */ console.log('\nNome: ' + yan.get.name() + '\nEmail: ' + yan.get.email());
É evidente o maior número de linhas escritas, mas sua manutenção assim como a utilização de seus métodos parece mais fácil.
Em contra partida creio que, criando objetos literais dentro de objetos literais, estou aumentando o processamento desnecessário dessas informações. O que vocês acham?