2017-12-05 1 views
-1

Ich bin verwirrt, ich verliere Umfang innerhalb meiner Object.keys (foo) .forEach Funktion und ich bin mir nicht sicher warum. Hier ist der Code:Fehlender Bereich innerhalb von Object.keys

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

Innerhalb items.forEach alles ist in Ordnung, ich kann das zugreifen, aber innerhalb der Object.keys ... das ist weg, was ist hier los?

Vielen Dank im Voraus, Chris

+0

Verwenden Sie einen Pfeil ES6 Funktion statt 'Object.keys (Wert) .foreach (key => {...}) ' – Olian04

+0

Probieren Sie die Pfeiltasten ganz durch, und Sie haben einen Tippfehler auf' foreach' sollte 'forEach' -' items.forEach (Wert => { Object.keys (Wert) .forEach (key => { this._someFunction (key); }); }); ' –

+0

Bitte fügen Sie eine [mini mal, vollständiges und verifizierbares Beispiel] (https://stackoverflow.com/help/mcve/), das das eigentliche Problem zeigt. Dein Code würde funktionieren: https://jsfiddle.net/h8monjhk/ - In beiden '.forEach()' Zweigen 'hat' das 'den gleichen Wert (' test' in der Geige) – Andreas

Antwort

0

Wie Sie sagten, Sie nicht ES6 verwenden können, Sie so etwas wie schreiben:

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