Proxy Getting RangeError

Я пытаюсь перехватить операции получения и установки с использованием прокси. Настройка работает отлично, но получает триггеры "RangeError: Превышен максимальный размер стека вызовов" в бесконечном цикле. Я пытаюсь просто войти во время перехвата и вернуть поведение по умолчанию.

За работой:

testobject = {}
testobject = new Proxy(testobject, {
 set(target, property, value, receiver) {
  console.log("setting", target, property, value, receiver)
  return(Reflect.set(target, property, value, receiver))
 }
})
testobject.done = true
console.log(testobject.done)

Разбитая:

testobject = {}
testobject = new Proxy(testobject, {
 get(target, property, receiver) {
  console.log("getting", target, property, receiver)
  return(Reflect.get(target, property, receiver))
 },
 set(target, property, value, receiver) {
  console.log("setting", target, property, value, receiver)
  return(Reflect.set(target, property, value, receiver))
 }
})
testobject.done = true
console.log(testobject.done)

1 ответ

Решение

Я исправил это, удалив параметры приемника.

testobject = {}
testobject = new Proxy(testobject, {
 get(target, property) {
  console.log("getting", target, property)
  return(Reflect.get(target, property))
 },
 set(target, property, value) {
  console.log("setting", target, property, value)
  return(Reflect.set(target, property, value))
 }
})
testobject.done = true
console.log(testobject.done)

Другие вопросы по тегам