xmlhttprequest で変数にアクセスしようとしているときに問題が発生しました。私は次のコードを持っています:
function MyObject(){
this.variable = 0;
}
MyObject.prototype = {
request: function(url, call_function){
try{
if(window.XMLHttpRequest)
httpRequest = new XMLHttpRequest();
else if(window.ActiveXObject)
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
httpRequest.onreadystatechange = function(data)
{
try
{
if(httpRequest.readyState == 4)
{
if(httpRequest.status == 200){
var tab = JSON.parse(httpRequest.responseText).childs;
call_function.apply(this, Array(tab));
}
}
}
catch(e){}
};
httpRequest.open('GET', url);
httpRequest.send();
}
catch(err){}
},
start: function(url){
this.request(url, this.func);
},
func: function(){
try{this.variable = 5;}
catch(err){alert(err);}
}
};
var obj = new MyObject();
obj.start(url);
このコードでは、プログラムが「func」関数を実行すると例外がキャッチされ、「this.variable」が定義されていないことがわかります。このプロパティにアクセスできない理由を知っていますか?