JS | Scope instances for "classes"

How to inject different scopes to "classes"

by Zoltan Boros

HTML

<pre id="out"></pre>

JavaScript

var out = document.getElementById("out");

var i = 0, j = 10, k = 100;

var class1 = new AnonymousScope({ x : i++ });
var class2 = new AnonymousScope({ x : i++ });
var class3 = new AnonymousScope({ x : i++ });

var object1 = new class1({ x : j++ });
var object2 = new class2({ x : j++ });
var object3 = new class3({ x : j++ });

object1.doSomething(k++);
object2.doSomething(k++);
object3.doSomething(k++);

object1.doSomething(k++);
object2.doSomething(k++);
object3.doSomething(k++);

function AnonymousScope(os)
{
    function SomeClass(is)
    {
        this.doSomething = function(param)
        {
            print("Outer Scope: [" + os.x + "], Inner Scope: [" + is.x + "], Param: [" + param + "]");
        }
    }
    
    return SomeClass;
}

function encode(string)
{
    var element = document.createElement("span");
    var textNode = document.createTextNode(string);
    element.appendChild(textNode);
    return element.innerHTML;
}

function print(string)
{
    out.innerHTML += encode(string) + "\n";
}