JSFiddle - React, Tailwind, and code Playground
by ifandelse
HTML
<script src="https://rawgithub.com/ifandelse/strategy.js/master/lib/strategy.js"></script>
JavaScript
var strategies = {
strategy1: function (a, b, c) {
var args = arguments;
return {
name: "strategy1",
fn: function (next) {
var x = Array.prototype.slice.call(arguments, 1);
setTimeout(function() {
$("body").append("<div>Strategy 1</div>");
$("body").append("<div><pre>" + JSON.stringify(args, null, 2) + "</pre></div>");
$("body").append("<div><pre>" + JSON.stringify(x, null, 2) + "</pre></div><hr/>");
next.apply(this, x);
},0);
}
}
},
strategy2: function (food) {
var args = arguments;
return {
name: "strategy2",
fn: function (next) {
var a = Array.prototype.slice.call(arguments, 1);
setTimeout(function() {
$("body").append("<div>Strategy 2</div>");
$("body").append("<div><pre>" + JSON.stringify(args, null, 2) + "</pre></div>");
$("body").append("<div><pre>" + JSON.stringify(a, null, 2) + "</pre></div>");
next.apply(this, a);
}, 1200);
}
}
},
strategy3: function (obj) {
var args = arguments;
return{
name: "strategy3",
fn: function (next) {
var a = Array.prototype.slice.call(arguments, 1);
$("body").append("<div>Strategy 3</div>");
$("body").append("<div><pre>" + JSON.stringify(args, null, 2) + "</pre></div>");
$("body").append("<div><pre>" + JSON.stringify(a, null, 2) + "</pre></div>");
next.apply(this, a);
}
}
}
};
var sub = {
foo: 'bar',
callback: function () {
$("body").append("<div>CALLBACK EXECUTED + " + JSON.stringify(arguments, null, 2) + "</div>");
}
};
sub.callback = new Strategy({ owner: sub,...