以下是我的javascript文件的内容。
var inyavicsage = inyavicsage || {};
inyavicsage.TestClass = function () {
this.testProperty = null;
}
inyavicsage.TestClass.prototype = {
constructor: this,
testMethod: function () {
testClass = this;
$.post('test.php', function(data){
testClass.testProperty = data;
});
alert(testClass.testProperty);
}
}
var testClass = new inyavicsage.TestClass();
testClass.testMethod();
我希望“alert(testClass.testProperty)”语句应该显示分配给“testClass.testProperty”的“data”变量的内容,而是显示“null”。
问题及其解决方案是什么?
答案 0 :(得分:3)
alert(testClass.testProperty)
显示null
,因为发布请求是异步的。
所以基本上你在设置之前就已经获得了这个属性。 这将有效:
$.post('test.php', function(data){
testClass.testProperty = data;
alert(testClass.testProperty);
});
答案 1 :(得分:0)
这是因为javascript的异步性质,发布了帖子然后它继续运行。当它到达警报时它是null。
解决方法是在帖子的回调中调用函数