给定一个实例化的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)
答案 0 :(得分:1)
更改此行:
SampleNamespace.MyService.GetConsoleIcons(name, this.IconsGenerated);
为:
SampleNamespace.MyService.GetConsoleIcons(name,
Function.createDelegate(this, this.IconsGenerated)
);
有关在Web服务调用中保留对this
的引用的更多示例,请参阅this article。