2017-09-06 2 views
0

Wird eval() im strikten Modus in Methoden ausgeführt?Wird eval() im strikten Modus in Methoden ausgeführt?

class A { b() {eval("with(this) { 1 } ")} } 
new A().b() 
// strict mode error 

Aber nicht in Funktionen?

function b() {eval("with(this) { 1 }")} 
b() 
> 1 
+0

Sure 'eval' läuft. Aber "mit" ist dort nicht erlaubt. Hast du die Fehlermeldung tatsächlich angeschaut? – Bergi

Antwort

1

Dies wird MDN, ES2017 in docs explizit angegeben.

Die Körper der Klassendeklarationen und Klassen Ausdrücke werden in d.h. strikten Modus Konstruktor, statische und Prototyp Methoden, Getter und setter Funktionen im strikten Modus ausgeführt werden ausgeführt.

Verwandte Themen