javascript - 将 $.getJSON 的结果传递给同一个类的另一个方法

标签 javascript jquery ajax class methods

我有一个 JavaScript 类,想要将 $.getJSON 的结果传递给同一类的另一个方法,并从类外部访问它。我的错误在哪里?

我的代码类似这样:

function MyClass() {
    var mydata = false;

    this.getData = function() {
        $.getJSON( "/api/get.php", function(data) {
            this.setData(data);
        });
    }

    this.setData = function(data) {
        this.mydata = data;
        this.logData();
    } 

    this.logData = function() {
        console.log(this.mydata);
    }   

    this.returnData = function() {
        return this.mydata;
    } 
}

var MyClass = new MyClass();
MyClass.getData();
var data = MyClass.returnData();

首先,我想创建类的实例并从服务器获取数据。然后方法 setData 应该验证结果,将其存储在变量中并将结果记录到控制台。之后我想从类外部访问数据。

最佳答案

this 在每个函数中都会发生变化,因此您可以将 this 存储在变量中:

function MyClass() {
    var mydata = false, that = this;

    this.getData = function() {
        $.getJSON( "/api/get.php", function(data) {
            that.setData(data);
        });
    }

    this.setData = function(data) {
        that.mydata = data;
        that.logData();
    } 

    this.logData = function() {
        console.log(that.mydata);
    }   

    this.returnData = function() {
        return that.mydata;
    } 
}

var MyClass = new MyClass();
MyClass.getData();
var data = MyClass.returnData();

关于javascript - 将 $.getJSON 的结果传递给同一个类的另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32209937/

相关文章:

javascript - 在Javascript中使链接可点击?

javascript - 如何使用 ajax 将多个值发送到 PHP

javascript - jquery - 查找表中的元素并根据结果更改其他元素

python - django 模型中是否有可用的方法,以便我可以使用字符串访问其字段名?

javascript - 为什么我的新内容没有立即在页面上显示/消失,而是在手动刷新后显示/消失?

javascript - 有没有任何来源可以保存我的其余 API 数据?

javascript - 如何创建包含动态数据的柱形图

javascript - Jquery检查向下滚动时是否到达页面上的标记

javascript - paypal结账按钮在javascript中获取json响应

jquery - jQuery UI 的选项卡演示如何隐藏虚线焦点框?