是否可以定义拦截typeof proxyObject
的处理程序属性? Mozilla列出的所有陷阱都没有将其列为拦截。
答案 0 :(得分:1)
无法拦截typeof
。代理对象的类型将与代理目标相同。
您可以在此处的规范中看到此内容:http://www.ecma-international.org/ecma-262/7.0/#sec-typeof-operator-runtime-semantics-evaluation,表格的重要部分为
代理是一个对象,它是否实现[[Call]]
取决于在创建时传递给代理的target
的类型。您可以在http://www.ecma-international.org/ecma-262/7.0/#sec-proxycreate步骤7中看到。因此,如果您向其传递一个函数(它们都实现[[Call]]
),那么代理也将如此,并且代理将返回function
for {{ 1}}。