Ich versuche .toString() auf eine Funktion Proxy anzurufen.Funktion Proxy .toString() Fehler
Durch das einfache Erstellen eines Funktionsproxys und das Aufrufen von toString wird "TypeError: Function.prototype.toString ist nicht generisch" ausgelöst, sodass toString die Quelle der ursprünglichen Ursachen zurückgibt "RangeError: Maximale Callstackgröße überschritten", aber ein Get Trap für toString funktioniert.
Warum Einstellung nicht einfach die toString-Funktion nicht, sondern macht eine get-Falle tut?
function wrap(source) {
return(new Proxy(source, {}))
}
wrap(function() { }).toString()
function wrap(source) {
let proxy = new Proxy(source, {})
proxy.toString = function() {
return(source.toString())
}
return(proxy)
}
wrap(function() { }).toString()
function wrap(source) {
return(new Proxy(source, {
get(target, key) {
if(key == "toString") {
return(function() {
return(source.toString())
})
} else {
return(Reflect.get(source, key))
} } })) }
wrap(function() { }).toString()
bezogen werden: https: // esdiscuss. org/Thema/calling-tostring-on-Funktion-proxy-wirft-Typeerror-Ausnahme – tybro0103
Unrelated: 'return' ist ein Schlüsselwort, nicht eine Funktion in sich, so dass es' Rückkehr x' nicht 'return (x)'. Der Parens macht hier nichts. – Albin