[英]Changing a javascript class property from an ajax post function callback function in the class method
以下是我的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”。
有什么问题和解决方案?
alert(testClass.testProperty)
显示为null
因为发布请求是异步的。
因此,基本上,您是在设置属性之前先获取该属性。 这将起作用:
$.post('test.php', function(data){
testClass.testProperty = data;
alert(testClass.testProperty);
});
这是因为javascript的异步特性,发布了该帖子,然后继续运行。 当到达警报时,它为null。
解决的办法是在帖子的回调中调用一个函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.