繁体   English   中英

从class方法中的ajax post函数回调函数更改javascript类属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM