Iva*_*del 6 javascript class object
我的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();
});
};
}
Run Code Online (Sandbox Code Playgroud)
但是,this.data = ajaxData.PcbFile;doesen不工作......我的对象仍然使用最后一个数据集,而不是更新的数据集.函数SET,我创建的另一种尝试来设置数据.
在ajax上没有问题,因为我对ajaxData进行了调整,并且没问题(当我更新时).
那么,我如何真正data从内部函数访问对象属性?
(对不起我的英语不好...)
Pol*_*yov 17
我很难学到这一点,你必须要小心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();
});
};
}
Run Code Online (Sandbox Code Playgroud)
缓存,this以便您可以在其他地方的相同上下文中引用它:
function File(data){
var self = this;
self.data = data;
self.update = function (callback){
var set = function(ajaxData){
self.data = ajaxData.PcbFile;
}
getPcbFile(data.id, function(ajaxData){
set(ajaxData);
callback();
});
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10467 次 |
| 最近记录: |