javascript - 从 jquery 的 .each 内部调用父级的父级中的函数

标签 javascript jquery scope each

我在 javascript 中创建了一个名为 QuoteProductService() 的“类”,请参见下文。 我已经向原型(prototype)添加了两个函数,现在,我尝试从另一个函数 (getFakeQuoteProducts) 内的 jquery $.each 中调用其中一个函数 (getQuoteProductFromArray)。这是行不通的。我尝试添加“this.”,但这也不起作用,因为 .each 中的“this”引用循环中的当前元素。

我应该怎么做?

function QuoteProductService() {

}

QuoteProductService.prototype.getQuoteProductFromArray =  function(quoteproductarray, quoteproductid){
     var founditem=null;
     // do stuff
    return founditem;
}

QuoteProductService.prototype.getFakeQuoteProducts = function(){
    // do something to fill the mappedQuoteProducts array
    $.each(mappedQuoteProducts, function (index, quoteproduct) {
        if (quoteproduct!=-null) {
            if (quoteproduct.parentid != "") {
                // this is where it goes wrong :
                var parent = getQuoteProductFromArray(mappedQuoteProducts, quoteproduct.parentid);
                if (parent != null) {
                    parent.attachChild(quoteproduct);
                }
            }
        }
    });
}

最佳答案

在调用 each 之前保存对 QuoteProductService 实例的引用

QuoteProductService.prototype.getFakeQuoteProducts = function(){
  var _this = this;
  // do something to fill the mappedQuoteProducts array
  $.each(mappedQuoteProducts, function (index, quoteproduct) {
      if (quoteproduct!=-null) {
          if (quoteproduct.parentid != "") {
              // this is where it goes wrong :
              var parent = _this.getQuoteProductFromFlatArray(mappedQuoteProducts, quoteproduct.parentid);
              if (parent != null) {
                  parent.attachChild(quoteproduct);
              }
          }
       }
    });
}

关于javascript - 从 jquery 的 .each 内部调用父级的父级中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453437/

相关文章:

javascript - 在 Javascript 中检测图像中的眼神接触

javascript - 如果表格单元格的文本与变量相同,则更改表格单元格的 CSS

javascript - 编码字符集问题

r - 使用变量对 data.table 进行子集化(当 varname 与 colname 相同时)

javascript - 如果我们在 .js 中拥有所有详细信息,.vue .js 文件之间有什么区别?

Javascript - 为什么 isNaN(1 + null) 返回 false?

javascript - 如何创建一个会改变背景颜色的按钮

javascript - 整个 html 文档的 Backbone js View

class - 从 Arduino 中的库调用主程序中的函数

python - Python 作用域规则是否符合词法作用域的定义?