Skip to content

Instantly share code, notes, and snippets.

@Diullei
Created January 22, 2012 16:24
Show Gist options
  • Save Diullei/1657581 to your computer and use it in GitHub Desktop.
Save Diullei/1657581 to your computer and use it in GitHub Desktop.
MyObj.prototype.Inc = function $Inc(){
console.log(this._num);
this._num++;
if(this._num >= 10)
return;
// chamada recursiva da mesma função. Se chamássemos simplesmente utilizando arguments.callee()
// causaríamos um estouro de pilha por que nunca teríamos o estado do campo _num preservado,
// já que o contexto da função estaria sempre mudando a cada chamada. Para manter este contexto
// ativo estamos utilizando a função apply do objeto Function qye nos permite passar o contexto para o qual
// queremos que a função execute. O mesmo ocorreria caso quiséssemos utilizar o alias $Inc. Escreveríamos
// $Inc.apply(this)
arguments.callee.apply(this);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment