Module Pattern JavaScript

Module Pattern:
- Closures are used to implement the Module pattern, which enables you to create self-contained modules with private & public members.

const module = (function() {
	let privateVariable = 10;

	function privateFunction() {
		console.log('Private Function');
	}
	
	return {
		publicVariable: 20,
		publicFunction: function() {
			console.log('Public Function');
		}
	};
})(); // IIFE Immediately Invoked Function Expressions Javascript

console.log(module.public());