I am trying to assign the ajax callback function variable value to the existing variable.
I have
function test(){
}
test.prototype.click=function(){
this.count;
//call ajax codes.....
//ajax callback function
ajax.callback=function(var1){
//I want to assign returned data to this.count property.
this.count=var1.length
}
}
test.prototype.show=function(){
//wont work, it will show undefined...
alert(this.count);
}
var t=new test();
t.click();
t.show();
I think it’s the scope issue but I don’t know how to solve this. Any idea? Thanks in advance.
Yeah, using this within another scope causes all kinds of issues, so you need to work around this. One way is to avoid using this entirely by defining your function differently. For instance, you can define count like so:
And just use count() without the this. prefix.
You can also set a variable to this and use that to refer to count within your other scope. For instance:
Scoping issues with this can be a pain in the neck and can occur when you do more OO with callbacks. It’s good you got introduced to this early on, so now you know to be on guard.