【发布时间】:2016-04-02 11:25:49
【问题描述】:
我想测试一个 JavaScript 对象是否是 Proxy。简单的方法
if (obj instanceof Proxy) ...
在这里不起作用,遍历Proxy.prototype 的原型链也不起作用,因为所有相关操作都得到了底层目标的有效支持。
是否可以测试任意对象是否为代理?
【问题讨论】:
-
也许代理代理?我的意思是在任何涉及代理的脚本之前代理代理函数..
-
代理的目的难道不是您无法将它们与“正常”对象区分开来吗?为什么要测试这个?
-
@Bergi 好吧,这当然不是代理的 主要 目的。剩下的,我有点惊讶你无法找出这个测试的用例。
-
我写了一个小提琴来澄清这个想法,...jsfiddle.net/ycw7788/uauoxn7o
-
这行得通吗? function isProxy(o) { if (typeof Proxy !== 'function') return false;尝试 { o instanceof 代理;返回假; } 捕捉 () { 返回真; } }
标签: javascript ecmascript-6 proxy-classes