JSFiddle - React, Tailwind, and code Playground

by Alpha

JavaScript

function MyObject() {
    var self = this;
    
    var a = 1;
    this.b = 2;
    
    var innerMethod = function() {
        //1 and 2: direct reference
        logMessage("a = " + a); // a = 1
        //logMessage("b = " + b); // Error: b is not defined
        
        //3 and 4: using this
        logMessage("this.a = " + this.a); // this.a = undefined
        logMessage("this.b = " + this.b); // this.b = undefined
        
        //5 and 6: using self
        logMessage("self.a = " + self.a); // self.a = undefined
        logMessage("self.b = " + self.b); // self.b = 2
    }
    
    return {
        method: innerMethod
    };
}

function logMessage(message) {
    body = document.getElementsByTagName('body')[0];
    var p = document.createElement("p");
    p.innerHTML = message;
    body.appendChild(p);
}

var theObject = new MyObject();
theObject.method();