Javascript im Kontext ohne Verwendung dieses Schlüsselworts bewerten
Ich versuche, eval in einem bestimmten Kontext auszuführen. Ich habe die Antwort gefundenHie nützlich. In Chrome Version 53.0.2785.143 m wird jedoch das folgende Verhalten angezeigt. Nicht andere Browser ausprobiert. Der Code, den ich verwende, ist der folgende:
function evalInContext(js, context) {
return function() { return eval(js); }.call(context);
}
console.log(evalInContext('x==3', { x : 3})) // Throws
console.log(evalInContext('this.x==3', { x : 3})) // OK
Allerdings habe ich den ersten Anruf bei @ erwartevalInContext
nicht zu werfen. Irgendwelche Ideen, warum das passieren könnte?