JSFiddle - React, Tailwind, and code Playground

by jcreamer898

JavaScript

(function() {
  var x = 1;
    
//  console.log(x); 
}());

// IIFE
// Immediately Invoked Function Expression

function outer() {
  var x = 1;
     
  function inner() {
    // var x = 2;  
    x = 3;
//    console.log("inner", x);
  };
    
  inner();
//  console.log("outer", x); // 1 or 3?
};

outer();

// Revealing Module Pattern

var Animal = (function() {
    var _speak = function() {
      console.log("private speak");
    };
    
    // API Animal module
    return {
        speak: _speak
    };
}());

Animal.speak();


// Revealing Prototype
var Animal = (function() {
    var Animal = function() {
    };
    
    var _speak = function() {
      console.log("private speak");
    };
    
    Animal.prototype.speak = _speak;
    
    // Return constructor
    return Animal;
}());

var Dog = (function() {
    var Dog = function() {
    };
    
    var _speak = function() {
      console.log("private speak");
    };
    
    Dog.prototype = Object.create(Animal.prototype);
    Dog.prototype.constructor = Dog;
    Dog.prototype.speak = _speak;
    
    // Return constructor
    return Dog;
}());

(new Animal()).speak();
(new Dog()).speak();