dojo.declare("Test", null, { myData : null, myFunc : function() { alert(this.myData); console.log("4"); }, constructor : function() { console.log("1"); dojo.xhrGet({ url : "data.json", load : function(data) { this.myData = data; console.log("2"); } }); console.log("3"); } }); var t = new Test(); t.myFunc();
//运行结果
//1
//3
//4
//2
把xhrGet函数设置成同步就OK了。
注意:在xhrGet中设置myData时,不能写成this.myData, 在那个函数体内this指向的是xhrGet函数。
dojo.declare("Test", null, { myData : null, myFunc : function() { alert(this.myData); console.log("4"); }, constructor : function() { console.log("1"); var self = this; dojo.xhrGet({ url : "data.json", sync:true, load : function(data) { self.myData = data; console.log("2"); } }); console.log("3"); } }); var t = new Test(); t.myFunc();