2017-02-27 97 views

回答

0

不可能拦截typeof。代理对象的类型将与代理目标相同。

您可以在这里的规范看到这一点:http://www.ecma-international.org/ecma-262/7.0/#sec-typeof-operator-runtime-semantics-evaluation与所述桌子

  1. 对象的重要组成部分(普通,而且没有实现[[呼叫]])=>“对象”
  2. 对象(实现[[调用]])=>“功能”

代理是一个对象,并且它是否实现[[Call]]取决于传递到代理在创建时的target类型。你可以在http://www.ecma-international.org/ecma-262/7.0/#sec-proxycreate步骤7中看到。所以如果你传递了一个函数(它们全都实现[[Call]]),那么代理也会被执行,代理将返回function代替typeof

相关问题