2016-05-01 7 views
4
new Proxy(function() {}, {}) 

Erstellen eines Proxy, um eine Funktion zu sehen, funktioniert nicht in Chrome. Stattdessen gibt es einen Fehler aus:neuer Proxy funktioniert nicht in Chrome

Uncaught illegal access 

Ich möchte eine Funktion überwachen und einen Proxy-Handler erstellen, wenn auf seine Eigenschaften zugegriffen wird. Scheint gut in Firefox. Irgendeine Möglichkeit, das zu umgehen?

Antwort

5

Dies ist ein Problem mit der Chrome-Devtools-Konsole, die versucht, das Ergebnis anzuzeigen, nicht der Proxy-Konstruktor selbst. Welche Chrome-Version verwenden Sie?

In der 50-Konsole Chrome, ich sehe dies:

> let p = new Proxy(function(){return 6},{}) 
< undefined 
> p 
< #<Function> 
Uncaught illegal access 
    DebuggerScript.getFunctionScopes @ (program):4 
> p() 
< 6 

So ist die Funktions-Proxy funktioniert gut, aber die Konsole barfs es angezeigt wird. Sollte in den neuesten Chrome-Versionen behoben sein. Vorerst können Sie den Fehler einfach ignorieren.

0

In der Tat als @AndreasRossberg eine Chrome-Einschränkung beantwortet. Wenn Sie den gleichen Code in Firefox verwenden, funktioniert es korrekt und gibt wie erwartet aus:

> let p = new Proxy(function(){return 6},{}) 
< undefined 
> p 
< function() 
> p() 
< 6 
Verwandte Themen