16

WeakMaps で明らかなことをしようとしています: 弱い参照を作成したいです。特に、リストがリスナーの寿命に影響を与えることなく、イベントリスナーのリストが必要です。

そのため、WeakMaps が 1 つの (かなりまれな) ユースケースを満たすためにのみ構築され、それ以外の場合は封印されていたオブジェクトを拡張することを確認するまで、WeakMaps を見つけることに非常に興奮していました。いつそんなことをしたいのか考えられませんが、常にリスナーのリストが必要です。

これは、私がこれを行うとは思わなかった巧妙な方法で WeakMaps を使用することは可能ですか?

4

1 に答える 1

15

いいえ、WeakMaps を使用して弱参照を作成することはできません。WeakMap は反復可能ではありません。使用するには常にキーが必要です。これは意図的な決定でした (ここでも) ため、ガベージ コレクションがプログラムのセマンティクスに影響を与えることはありません。これはまさにあなたが望んでいることです。

実際の弱参照は ES8 に付属している可能性があります。ドラフトについては、あちこちを参照してください。

于 2015-04-19T21:39:05.863 に答える