O que vocês acham dessa sintaxe para Classes?
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?
Discussão (0)
Carregando comentários...