2017-12-05 27 views
-1

私は混乱しています。私はObject.keys(foo).forEach関数内でスコープを失っています。ここでは、コードです:Object.keys内にスコープがありません

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

items.forEachのすべてのものの中で、私はそれを細かいアクセスすることができているが、それがなくなってObject.keys ...以内に、ここで間違って何ですか?事前に

おかげで、クリス

+0

ES6の矢印機能の代わりに 'Object.keys(値)を使用し.foreach(あなたは 'foreach'のtypoを' forEach'にする必要があります - items.forEach(value => { Object.keys(value()= key {>}) ' – Olian04

+0

)を追加してください。.forEach(key => { this._someFunction(key); }); }); ' –

+0

[mini mal、完全で検証可能な例](https://stackoverflow.com/help/mcve/)を参照してください。あなたのコードは動作します:https://jsfiddle.net/h8monjhk/ - 両方の '.forEach()'ブランチで 'that'が同じ値(フィドルでは' test')を持っています – Andreas

答えて

0

あなたはES6を使用することはできません、あなたが何か書くことができます言ったように:

items.forEach((function(value, key) { 
    ... 
    Object.keys(value).forEach((function(key) { 
     this._someFunction(); 
    }).bind(this), this); 
}).bind(this)); 
関連する問題