【发布时间】:2018-06-08 22:56:03
【问题描述】:
我正在尝试为某个对象创建代理,以检查属性是否被访问或修改,然后console.log 被更改的属性。我对 JavaScript 还很陌生,所以我不确定是什么导致堆栈溢出。我认为这是由于console.log 的一个奇怪的范围问题,但我不确定。这就是我的处理程序的样子
var handler = {
set: function(obj, prop, value) {
console.log(prop);
obj[prop] = value;
}
get: function(obj, prop, receiver) {
if (typeof prop !== 'symbol') console.log(prop);
return obj[receiver];
}
};
我正在使用这一行将处理程序分配给名为 ctx 的 CanvasRenderingContext2D 元素。
watchedCtx = new Proxy(ctx, handler);
我在 get 属性方法中添加了额外的检查,因为我从 get 方法收到了很多 Symbol 原语,我认为这是问题所在,所以我尝试将它们过滤掉。有没有其他人遇到过这个问题或知道可能是什么原因造成的?
【问题讨论】:
标签: javascript debugging ecmascript-6 stack proxies