我有一个数组,我需要遍历它来获取一个值。

    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); 
}); 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!