获取Ajax调用以返回到我的Javascript上下文

时间:2009-08-31 23:50:28

标签: asp.net javascript asp.net-ajax

给定一个实例化的JavaScript对象/类,我可以从该类进行Ajax调用,并将返回的成功函数回调到调用者的对象中吗?

目前我可以让回调返回到对象中,但是我失去了“this”属性,这会杀死我的对象的状态

function BaseConsoleHelper()
{
this._iconIndex = 0;
} 
BaseConsoleHelper.prototype = {
Dispose: function()
{
this._previousIndex = 0;
},
GetVisitConsoleIcons: function(name)
{
    this._iconIndex = 500;

    SampleNamespace.MyService.GetConsoleIcons(name, this.IconsGenerated);
},
IconsGenerated : function(result)
{ 
    //I should be 500.....but I'm not, cause "this" has become something else
    alert( this._iconIndex );
}
};

BTW我使用的是asp.net ajax 3.5(哇,这里的继承不是纯粹的JavaScript)

1 个答案:

答案 0 :(得分:1)

更改此行:

SampleNamespace.MyService.GetConsoleIcons(name, this.IconsGenerated);

为:

SampleNamespace.MyService.GetConsoleIcons(name, 
    Function.createDelegate(this, this.IconsGenerated)
);

有关在Web服务调用中保留对this的引用的更多示例,请参阅this article