JSFiddle - React, Tailwind, and code Playground

by bittersweetryan

JavaScript

//this and IIFE

var person = (function(){
    var firstName = "Ryan";
    var lastName = "Anklam";
    
    return{
        getFirstName : function(){
            return firstName + ' ' + lastName;
        },
        
        sayHello : function(){
            return this.getFirstName() + " says hello";
        }
    };
})();

console.log(person.getFirstName());
console.log(person.sayHello());

//interesting twist
var person = (function(){
    //these are private still
    var firstName = "Aaron";
    var lastName = "Rodgers";
    
    //this will be made public by returning this (see the end of the person function to see where this is coming from
    this.getFirstName = function(){
            return firstName + ' ' + lastName;
    };
        
    this.sayHello = function(){
            return this.getFirstName() + " says hello";
    };
              
    return this;
}).call({});  //sweet! we can set this in an IIFE by passing in a blank object literal using the call method

console.log(person.getFirstName());
console.log(person.sayHello());