【问题标题】:Changing a javascript class property from an ajax post function callback function in the class method从类方法中的 ajax post 函数回调函数更改 javascript 类属性
【发布时间】:2016-08-18 20:22:08
【问题描述】:

以下是我的 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”。

有什么问题和解决方法?

【问题讨论】:

    标签: javascript jquery ajax oop


    【解决方案1】:

    alert(testClass.testProperty) 显示 null 因为发布请求是异步的。

    所以基本上你在设置之前就获得了属性。 这将起作用:

    $.post('test.php', function(data){
        testClass.testProperty = data;
        alert(testClass.testProperty);
    });
    

    【讨论】:

    • 抱歉@InyavicSage 延迟重播,您将能够获取函数内部的数据,我将警报函数放在这里。
    【解决方案2】:

    这是因为 javascript 的异步特性,post 被创建,然后它继续运行。当它到达警报时,它是空的。

    解决办法是在post的回调中调用一个函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多