JSFiddle - React, Tailwind, and code Playground

by oceog

JavaScript

var Callback = function (op) {
    var self=this;
    self.callback = op.callback;
    var rnd=Math.random();
    return function() {
        console.warn('wow! callback! i remeber ',rnd);
        op.callback.apply(self,arguments);
    }
};

var Test = function (op) {
    for (var option in op) {
        if (!this[option]) this[option] = op[option];
    }

};

Test.prototype.init = function (bb) {
    console.log('aa = ' + this.aa);
    console.log('bb = ' + bb);
    if (bb < 3) {
        this.init(bb + 1);
    } else {
        this.callback(bb);
    }
};

var finalCallback = function (n) {
    console.log(this);
    console.log('this is finalCallback argument is',n);
};

var myCallback = new Callback({
    callback: finalCallback
});

var myTest = new Test({
    aa: 1,
    callback: myCallback
});

myTest.init(1);