如何从类函数内部访问对象属性[重复]

2023-11-21

我的 Javascript 类之一有时需要用 Json“更新”。我一直在做一个函数,在给定一个 id 的情况下更新数据数组,但现在我想把它做得更封装(函数更新,在类内部)。

我做了什么:

function File(data){
        this.data = data;

        this.update = function (callback){
            var set = function(ajaxData){
                this.data = ajaxData.PcbFile;
            }
            getPcbFile(data.id, function(ajaxData){
                set(ajaxData);
                callback();
            });
        };
    }

But, this.data = ajaxData.PcbFile;不起作用...我的对象仍然包含最后一个数据集,而不是更新的数据集。我创建函数 SET 作为设置数据的另一种尝试。

ajax上没有问题,因为我调试了ajaxData,并且没问题(当我更新时)。

那么,我如何真正访问对象属性data来自内部函数?

(对不起我的英语不好...)


我经历了惨痛的教训才明白这一点,你必须小心this。它总是指this在当前范围内,而不是它包含的对象。每当你把东西包裹进去时function() { ... }, this变成不同的范围。在您的情况下,将对象复制到局部变量并操纵它.data财产。

function File(data){
    this.data = data;
    var file = this; //call the variable whatever you want
    this.update = function (callback){
        var set = function(ajaxData){
            file.data = ajaxData.PcbFile;
        }
        getPcbFile(data.id, function(ajaxData){
            set(ajaxData);
            callback();
        });
    };
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从类函数内部访问对象属性[重复] 的相关文章