如何检查我们是否已经使用 ObservableSlim 在 Object 上创建了代理?
How to check if we have already created proxy on Object using ObservableSlim?
我正在使用 ObservableSlim
创建代理。
The create method of ObservableSlip will return a standard ES6 Proxy.
我在这样的对象上创建了一个代理:
const proxy = ObservableSlim.create(model, null, (changes) => {});
问题:
我怎么知道 proxy
是 ES6 Proxy?
你不能从代码的角度来看,因为代理是完全透明的。
唯一知道它是 Proxy 的是控制台:
console.log(proxy);
如前所述 here,这在一般情况下是不可能的(至少没有肮脏的黑客攻击),因为 Proxy
对象在设计上是透明的,并且在每次系统调用时模仿它们的目标。
但是,库作者意识到这有时可能会带来不便,并在他们的 Proxy 对象中提供了挂钩,以便用户可以检测到它们。对于有问题的库,返回的 Proxy 公开了 属性 __isProxy
正是为了这个目的。
我正在使用 ObservableSlim
创建代理。
The create method of ObservableSlip will return a standard ES6 Proxy.
我在这样的对象上创建了一个代理:
const proxy = ObservableSlim.create(model, null, (changes) => {});
问题:
我怎么知道 proxy
是 ES6 Proxy?
你不能从代码的角度来看,因为代理是完全透明的。
唯一知道它是 Proxy 的是控制台:
console.log(proxy);
如前所述 here,这在一般情况下是不可能的(至少没有肮脏的黑客攻击),因为 Proxy
对象在设计上是透明的,并且在每次系统调用时模仿它们的目标。
但是,库作者意识到这有时可能会带来不便,并在他们的 Proxy 对象中提供了挂钩,以便用户可以检测到它们。对于有问题的库,返回的 Proxy 公开了 属性 __isProxy
正是为了这个目的。