15/02/2011 Development / java script

Essa dica aqui é um baita pulo do gato!

Quando estamos trabalhando com prototype usamos a seguinte sintaxe.

function Classe(){};
Classe.prototype.Metodo1 = function(){};
Classe.prototype.Metodo2 = function(){}

Quando fazemos uma chamada a um WebMethod que está registrado no servidor, fazemos: Namespace.Pagina.WebMetodo(arg1, arg2, fnCallback)

fnCallback é o método que tratará a resposta do WebMetodo. Acontece que se chamarmos WebMetodo(args1, args2, this.Metodo1)...this.Metodo1 perderá a herança de this da Classe original, o this agora é a resposta do webMetodo.

Para fazermos a chamada corretamente, devemos fazer:

Namespace.Pagina.WebMetodo(args1, args2, this.Metodo1.bind(this));

Espero que sirva.