Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

Defers execution of the callback until exec is run. At that point, all future calls are executed immediately.

View Defer.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
function Defer(callback){
if(!this instanceof Defer)
return new Defer(callback);
 
var queue = []
, callback = callback
, slice = Array.prototype.slice
, changeling = function(){
queue.push({
'context': this,
'args' : slice.call(arguments, 0)
});
}
, wrapper = function(){
changeling.apply(this, slice.call(arguments, 0));
}
;//var
 
wrapper.exec = function(){
var call;
while(call = queue.pop()){
callback.apply(call.context, call.args);
}
 
changeling = callback;
}
 
return wrapper;
}
kputnam commented

var func = function(x) { return x };
func.hello = function(who) { return "hey baby, " + who; }

func(10) // => 10
func.hello("chad") // => "hey baby, chad"

kputnam commented
var func = (function() {
  var privateData = 0;

  var _func = function(x) { privateData ++; return x; };
  _func.hello = function(who) { return "you called " + privateData + " times"; }

  return _func;
})();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.