JSFiddle - React, Tailwind, and code Playground

by alexrothenberg

JavaScript

// A Closure provides encapsulation
var Database = (function() {
  _data = {}

  _create = function(object) {
    return _data[object.id] = object
  }
  _read =  function(id) {
    return _data[id]
  }
  _update = function(object) {
    return _data[object.id] = object
  }
  _delete = function(id) {
    return _data[id] = null
  }

  return {
    create: _create,
    read:   _read,
    update: _update,
    delete: _delete
  }
}).call(this)
        
// We can CREATE
Database.create({id: 7, name: 'Alex'});
Database.create({id: 9, name: 'Pat'});

// We can READ
document.write('<br>7: ' + Database.read(7).name);
  // 7: Alex
document.write('<br>9: ' + Database.read(9).name);
  // 9: Pat

// We can UPDATE
Database.update({id: 7, name: 'Alexander'})
document.write('<br>7: ' + Database.read(7).name);
  // 7: Alexander

// We can DELETE
Database.delete(7)
document.write('<br>7: ' + Database.read(7));
  // 7: null        
      
document.write('<br><br>I cannot get at _data directly. It is: ' + Database._data)