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());