Javascript:从ajax成功设置类属性

我有一个名为Spotlight的“类”/函数.我正在尝试通过ajax检索一些信息并将其分配给Spotlight的属性.这是我的Spotlight类:
function Spotlight (mId,mName) {
    this.area = new Array();

    /**
     * Get all area information
     */
    this.getArea = function () {

        $.ajax({
            url: base_url +'spotlight/aGetArea',type: 'POST',success: function (data) {
                this.area = data;
            }
        });
    }
}

我已经将对象分配给一个数组,并且很难从Spotlight中获取它,所以我希望使用’this’访问所有内容.虽然成功函数在类之外,但我不知道如何在类中创建它.

有没有办法使用this.area而不是Spotlight.area将数据导入类属性

解决方法

其值取决于每个函数调用方式.我看到了解决这个问题的3种方法

1.为此创建别名

var that = this;
this.getArea = function () {
    $.ajax({
        url: base_url +'spotlight/aGetArea',success: function (data) {
            that.area = data;
        }
    });
};

2.使用jQuery .ajax context选项

this.getArea = function () {
    $.ajax({
        url: base_url +'spotlight/aGetArea',context : this,success: function (data) {
            this.area = data;
        }
    });
};

3.使用绑定函数作为回调

this.getAreaSuccess = function (data) {
    this.area = data;
};
this.getArea = function () {
    $.ajax({
        url: base_url +'spotlight/aGetArea',success: this.getAreaSuccess.bind(this)
    });
};

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...