function correctSetTimeoutOrInterval(setTimeoutOrInterval) {
        return function (fun, timeout) {
            var args = Array.prototype.slice.call(arguments, 2);
            return setTimeoutOrInterval(function () {
                fun.apply(this, args);
            }, timeout);
        };
    }
// Accepting setTimeout/setInterval with >2 parameters
Accepting setTimeout/setInterval with >2 parameters
Accepting setTimeout / setInterval with > 2 parameters
function correctSetTimeoutOrInterval(setTimeoutOrInterval) {
        return function (fun, timeout) {
            var args = Array.prototype.slice.call(arguments, 2);
            return setTimeoutOrInterval(function () {
                fun.apply(this, args);
            }, timeout);
        };
    }
function correctSetTimeoutOrInterval ( setTimeoutOrInterval ) { return function ( fun , timeout ) { var args = Array . prototype . slice . call ( arguments , 2 ) ; return setTimeoutOrInterval ( function ( ) { fun . apply ( this , args ) ; } , timeout ) ; } ; }
Accepting setTimeout/setInterval with >2 parameters
Accepting setTimeout / setInterval with > 2 parameters