Javascript Object.keys中缺少作用域

Javascript Object.keys中缺少作用域,javascript,Javascript,我感到困惑,我失去了Object.keys(foo.forEach)函数中的作用域,我不知道为什么。代码如下: ... var that = this; items.forEach(function(value, key) { ... Object.keys(value).forEach(function(key) { that._someFunction(); }, that); }); 在items.forEach中一切正常,我可以访问它,但在Object.

我感到困惑,我失去了Object.keys(foo.forEach)函数中的作用域,我不知道为什么。代码如下:

...
var that = this;
items.forEach(function(value, key) { 
   ...
   Object.keys(value).forEach(function(key) {
      that._someFunction();
   }, that);
});
在items.forEach中一切正常,我可以访问它,但在Object.keys中。。。那不见了,这里怎么了


提前感谢,Chris

正如您所说,您不能使用ES6,您可以编写如下内容:

items.forEach( (function(value, key) { 
   ...
   Object.keys(value).forEach((function(key) {
      this._someFunction();
   }).bind(this), this);
}).bind(this));

使用ES6箭头函数代替
Object.keys(value).foreach(key=>{…})
试着一直使用箭头函数,你会发现
foreach
应该是
foreach
-
items.foreach(value=>{Object.keys(value).foreach(key=>{this.\someFunction(key);})请添加显示实际问题的代码。您的代码可以工作:-在
.forEach()
分支
中,
具有相同的值(
测试中的
)@Olian04不能使用此功能,因为它是在UI5上下文中,ES6还不受支持…好吧,伙计们,我不确定,为什么这以前不起作用,但在重新测试之后,现在完全可以了!无论如何谢谢你!