Modern JavaScript From The Beginning from Brad Traversy
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript Sandbox: Patterns</title>
</head>
<body>
<h1>JavaScript Sandbox: Patterns</h1>
<script src="app.js"></script>
</body>
</html>
// Basic structure
// (function() {
// // Declare private vars and functions
// return {
// // Declare public var and functions
// }
// })();
// STANDARD MODULE PATTERN
// const UICtrl = (function() {
// let text = 'Hello World';
// const changeText = function() {
// const element = document.querySelector('h1');
// element.textContent = text;
// }
// return {
// callChangeText: function() {
// changeText();
// // console.log(text);
// }
// }
// })();
// UICtrl.callChangeText();
// // UICtrl.changeText();
// console.log(UICtrl.text);
// REVEALING MODULE PATTERN
const ItemCtrl = (function() {
let data = [];
function add(item) {
data.push(item);
console.log('Item Added....');
}
function get(id) {
return data.find(item => {
return item.id === id;
});
}
return {
add: add,
// get: get
}
})();
ItemCtrl.add({id: 1, name: 'John'});
ItemCtrl.add({id: 2, name: 'Mark'});
console.log(ItemCtrl.get(2));