我有一个数组,我需要遍历它来获取一个值。
someFunc: function(item) {
var array = Ext.select(".item").elements;
var elements;
var itemId = item.id;
Ext.each(array, function(ob){
if (ob.id === itemId) {
elements = ob.getElementsByTagName("input");
Ext.each(elements, function(att){
if (att.getAttribute("name") === "filter") {
console.log(att);
this.callFunction();
// here I want to call a function to do some stuff
// but `"this"` here refers to input element
//I should be able to call the function outside the someFunc, but I'm loosing scope
}
});
}
});
},
callFunctionL function() {
}
如何在遍历数组的数组时保持作用域?
请您参考如下方法:
有两种方式:
a) 将 scope
参数传递给每个:
Ext.each(o, function() {
console.log(this);
}, this);
b) 在闭包中捕获作用域:
var self = this;
Ext.each(o, function() {
console.log(self);
});