1
是否可以定义拦截typeof proxyObject
的处理程序属性? Mozilla列出的陷阱都没有列为拦截。是否可以使用ES2016代理拦截“typeof”操作?
是否可以定义拦截typeof proxyObject
的处理程序属性? Mozilla列出的陷阱都没有列为拦截。是否可以使用ES2016代理拦截“typeof”操作?
不可能拦截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
代替typeof
。
你为什么要这样做? –