我正在学习ES6代理,并试图在get陷阱中了解参数receiver
,因此我尝试console.log接收者值。但是当在nodejs中运行时,会导致错误:
RangeError:超出最大调用堆栈大小
let proxy = new Proxy({}, {
get (target, key, receiver) {
console.log('receiver:', receiver)
}
})
let obj = Object.create(proxy)
console.log(obj)
我想知道导致此错误的原因,以及如何在不同情况下测试receiver
的引用。
我希望以下代码有助于解决您的问题。
let proxy = new Proxy({}, {
get: function (target, key, receiver) { // I hope that this line should
be the issue.
console.log('receiver:' + receiver);
}
});
let obj = Object.create(proxy)
console.log(obj)