2017-12-22 1 views
0

Ich möchte das domMatch für jede Pfeilfunktion sichtbar sein, wenn der Körper der Funktion this des äußeren Bereichs sehen kann, der in meinem vollen Fall eine Klasse ist, sollte auch ein sein Möglichkeit, domMatch-Objekt zu übergeben.So übergeben Sie externe Gültigkeitsbereichsvariable an foreach Funktion

  let tr = document.createElement("tr"); 

      let domMatch = {}; 

      domMatch.status = this.status; 
      ... other props 


      Object.getOwnPropertyNames(domMatch).forEach(function (domMatchField, a, b, domMatch) { // domMatch is undefined 
       let cell = tr.insertCell(-1); 

       cell.innerText = domMatch[domMatchField]; 

      }); 
+2

einen Parameter nicht fügen Sie 'domMatch' genannt, sollten Sie nur in der Lage sein, darauf zuzugreifen – user184994

+0

Nur eine Bemerkung am Rande - Sie Pfeil-Funktionen in Ihrem Code nicht haben. – Jamiec

+0

@Jamiec nicht mehr, danke für die Korrektur Ich aktualisierte die q – Aubergine

Antwort

2

Das Problem ist, dass Sie die Variable domMatch durch die Callback-Funktion in forEach zu passieren sind versucht - diese Funktion übernimmt (höchstens) 3 Argumente natürlich so die vierten undefined

einfach sein wird, weglassen Dieses Argument und domMatch sollte innerhalb des inneren Bereichs verfügbar sein.

var domMatch = {}; 
 
domMatch.status = "foo"; 
 

 
Object.getOwnPropertyNames(domMatch).forEach(function(key, index, arr){ 
 
    console.log("iterating over key:", key); 
 
    console.log("index:",index); 
 
    console.log("Original array:", arr); 
 
    // Now the important bit! 
 
    console.log("domMatch", domMatch); 
 
});

+0

+, danke, funktioniert – Aubergine

Verwandte Themen