Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

O que vocês acham dessa sintaxe para Classes?

$
0
0

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? 


Viewing all articles
Browse latest Browse all 14190