我的 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(使用前将#替换为@)