Module pattern + OO

by Artem

SCSS

$main-color: #222;
body {
  background-color: $main-color;
}

Babel + JSX

'use strict';

function createProject(title) {
  return (function() {
    let privateProperty = 10;

    function Project(title) {
      this.title = title;
    }

    Project.prototype.getPrivateProperty = function() {
      return privateProperty;
    };

    Project.prototype.setPrivateProperty = function(value) {
      privateProperty = value;
    };

    return new Project(title);
  }());
}

const p1 = createProject('p1');
const p2 = createProject('p2');

p1.setPrivateProperty(20);
console.log(p1.getPrivateProperty());
console.log(p2.getPrivateProperty());