Javascript 访问forEach回调内部的变量

Javascript 访问forEach回调内部的变量,javascript,arrays,Javascript,Arrays,我想访问一个变量,该变量的目的是聚合到目前为止在提供给forEach的回调中看到的记录。大概是这样的: var myfn = function() { var aggregate_val = []; someObj.someFunction( arg1, arg2, (function() { .... some_array.forEach(function(e) {

我想访问一个变量,该变量的目的是聚合到目前为止在提供给forEach的回调中看到的记录。大概是这样的:

var myfn = function() {
    var aggregate_val = [];
    someObj.someFunction(
        arg1,
        arg2,
        (function() {
            ....
            some_array.forEach(function(e) {
                this.aggregate_val.push(e.some_property);
            }, this);
        }).bind(this)
    );
}

为什么不应该这样做?

您不需要使用
this
来引用数组
aggregate\u val
。请尝试以下代码:

var myfn = function() {
  var aggregate_val = [];
  some_array.forEach(function(e) {
    aggregate_val.push(e.some_property);
  });
  console.log(some_array) // I added this so you can see the value of some_array
}

你为什么用这个?@AhmedEid PTAL。我已经更新了一点问题。@ibp73 Ahmed和Pavan是对的
aggregate_val
是一个变量,而不是一个属性,没有理由传递
。只需通过闭包直接访问即可。@ibp73:解决方案相同。