如何在EXTJS中循环遍历数组时获取范围

时间:2018-04-27 21:03:34

标签: javascript extjs

我有一个数组,我需要迭代才能获得一个值。

    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() {

}

如何在迭代数组数组时保持范围?

1 个答案:

答案 0 :(得分:6)

有两种方式:

a)将scope参数传递给每个参数:

Ext.each(o, function() {
    console.log(this);
}, this);

b)在闭包中捕获范围:

var self = this;
Ext.each(o, function() {
    console.log(self);
});