2017-02-27 68 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

相關問題