Getters and Setters Generator

by Quique Fdez Guerra

HTML

Open your console (F12)
by @uriusfurius and @CKGrafico

JavaScript

(function(){
	// Atributes
	var id, name, number;

	window.App = {
        
        get id() { return 'test' + id; },
        set id(newId) { id = newId; },
        
        get name() { return 'test2' + name; },
        set name(newName) { name = newName; },
        
        get number() { return 'test3' + number; },
        set number(newNumber) { number = newNumber; },
        
		myMethod: function(){
			return id + ' - ' + name;
		}
	}

})();

(function(){
	// Run code

	App.id = 5;
	console.log('App:' + App.id);
	App.id = 6;
	console.log('App:' + App.id);
    App.name = 'Quique'
	console.log('App:' + App.myMethod());
	console.log(App);
})();

/////////////////////////

//Getters and setters generator
(function(){
	// Atributes
	var attrs = {
		id: {},
		name: {},
		number: {}

	};

	window.NewApp = {
		myMethod: function(){
            console.log(this.id)
            console.log(this.name)
			return this.id + ' - ' + this.name;
		}
	}

	Object.keys(attrs).forEach(function(attr){
        Object.defineProperty(NewApp, attr, {
            get: function() { return 'dynamically created: ' + attrs[attr]; },
            set: function(data) { attrs[attr] = data; }
        });
	});

})();

(function(){
	// Run code

	NewApp.id = 5;
	console.log('NewApp: ' + NewApp.id);
	NewApp.id = 6;
	console.log('NewApp: ' + NewApp.id);
    NewApp.name = 'Quique 2'
	console.log('NewApp: ' + NewApp.myMethod());
	console.log(NewApp);
})();