JSFiddle - React, Tailwind, and code Playground

by rcuzcano

JavaScript

var userSettings = function (username, expired) {
    this.username = username;
    this.expired = expired;
    this.widgetsSettings = [];
    
    Object.defineProperty(userSettings, "username", {
        get: function () {
            return this.getUsername()
        },
        set: function (username) {
            this.setUsername(username)
        }
    });


    Object.defineProperty(userSettings, "expired", {
        get: function () {
            return this.getExpired()
        },
        set: function (expired) {
            this.setExpired(expired)
        }
    });

    Object.defineProperty(widgetsSettings, "widgetsSettings", {
        get: function(){
            return this.getWidgetsSettings()
        },
        set: function (widgetsSettings) {
            this.setWidgetsSettings(widgetsSettings);
        }
    });
}

var settings = new userSettings('name1', false);
console.log(settings);

settings.username = 'name666';
settings.expired = true;
settings.widgetsSettings = [];

console.log(settings);

settings.on("added", function () {
    console.log(settings.username);
});

settings.add('name1');