Web | JS Object Instances

by Zoltan Boros

HTML

<pre id="output">
</pre>

JavaScript

// https://stackoverflow.com/questions/13418669/javascript-do-i-need-to-put-this-var-for-every-variable-in-an-object
// https://javascriptweblog.wordpress.com/2010/08/30/understanding-javascripts-this/

var outputElement = document.getElementById("output");

function log(text)
{
    console.log(text);
    outputElement.innerHTML += text + "\n";
}

function MyClass(param1, param2)
{
    var THIS = this;

    this.field1 = param1;
    this.field2 = param2;

    var var1 = param1;
    var var2 = param2;

    this.method1 = function()
    {
        log("this.field1 + this.field2: [" + this.field1 + this.field2 + "]");
    };

    this.method2 = function()
    {
        log("THIS.field1 + THIS.field2: [" + THIS.field1 + THIS.field2 + "]");
    };

    this.method3 = function()
    {
        log("var1 + var2: [" + var1 + var2 + "]");
    };
}

function FakeJQuery()
{
    this.callMethod = function(method)
    {
        method.call(this);
    };
}

var $ = new FakeJQuery();
var o1 = new MyClass("a", "b");
var o2 = new MyClass("c", "d");

o1.method1();
$.callMethod(o1.method1);
log("");
o1.method2();
$.callMethod(o1.method2);
log("");
o1.method3();
$.callMethod(o1.method3);
log("--  --  --  --");
o2.method1();
$.callMethod(o2.method1);
log("");
o2.method2();
$.callMethod(o2.method2);
log("");
o2.method3();
$.callMethod(o2.method3);