我在經典javascript局部變量作用域主題上遇到了一些麻煩,但是處理了一個JSON變量。我在這裏查看了其他同樣的問題,但沒有任何結果與我的案例完全匹配,所以這裏就是這樣。我有一個我從javascript製作的類,有3個方法:func1,func2和func3。我也有一個本地JSON變量,它是在我使用jquery調用的ajax調用中的一個方法中設置的,但是當我調用返回該局部變量值的方法時未設置。我知道ajax工作正常,b/c我可以顯示正在返回的數據並被設置爲json變量沒有問題。只有當我調用另一個與該JSON變量交互的方法時纔會發生這種情況。這裏是我的代碼基本版本:自定義javascript類和私有變量範圍問題
function func1(){
func2();
}
function func2(){
$.getJSON("http://webservice.mydomain.com/methodname&jsoncallback=?",
function(data){
this.z = eval("(" + data.d + ")");
alert(data.d); //this displays the data!
alert(this.z.ArrayProperty[0].Property1); //this displays
//the correct data too!
}
);
}
function func3(){
return this.z.ArrayProperty[0].Property1;
}
function myClass(var1, var2){
this.x = var1;
this.y = var2;
this.z = "";
this.func1 = func1;
this.func2 = func2;
this.func3 = func3;
}
然後在我的.html頁面,我有以下代碼:
var obj = new myClass(1,2);
obj.func1("abc");
alert(obj.func3()); //ERROR: this.z.ArrayProperty is undefined
任何想法?!?!我在絞盡腦汁!
謝謝
你在Sam身上。現在我只需要找到一個好方法來解決這個問題。謝謝! – 2009-08-07 20:31:19