0

ECMAScript 6 では、取り消し可能として作成できるプロキシ オブジェクトが導入されています。

プロキシが取り消されたかどうかを検出するにはどうすればよいですか?

4

1 に答える 1

2

Proxyコンストラクターは、ターゲットとハンドラーがオブジェクトであり、取り消されたプロキシでない場合にのみそれらを受け入れます。ProxyCreateから、

  1. Type ( target ) が Object でない場合、TypeError 例外をスローします。
  2. targetが Proxy エキゾチックオブジェクトであり、 targetの [[ProxyHandler]]内部スロットの値が null の場合、TypeError 例外をスローします。

これにより、値が取り消されたプロキシであるかどうかを確認できます。オブジェクトであることを確認するだけでProxyスローになります。

このようなものが動作するはずです:

function isRevokedProxy(value) {
  try {
    new Proxy(value, value);
    return false;
  } catch(err) {
    return Object(value) === value;
  }
}
于 2016-09-05T18:23:45.723 に答える