私はWeakMapとJavaScriptで作業しており、ドキュメントを確認した結果、clear
メソッドがdeprecated/removed from ECMAScript 6であることに気づきました。なぜWeakMapのclear()メソッドは非推奨ですか?
この理由は何ですか?なぜのような明確な機能を実行するために私たちを強制 :
clear() {
this._weakmap = new WeakMap()
}
私はWeakMapとJavaScriptで作業しており、ドキュメントを確認した結果、clear
メソッドがdeprecated/removed from ECMAScript 6であることに気づきました。なぜWeakMapのclear()メソッドは非推奨ですか?
この理由は何ですか?なぜのような明確な機能を実行するために私たちを強制 :
clear() {
this._weakmap = new WeakMap()
}
「weakmap /鍵ペアの値からのマッピングのみを観察することができるか weakmapとキーの両方を持っている人によって影響を受けます。 クリア(付)、のみWeakMapと誰かが WeakMapと鍵のツー値のマッピングに影響を与えることができましたでしょう。」
この制限の理由保障されています懸念事項:
弱マップの重要な特性は、キーを列挙できないことです。 弱くマップされたオブジェクトを共有する環境内の他のシステムの内部動作 を攻撃者が監視するのを防ぐために必要です。 コレクション内のアイテムの数または名前がAPIからの のAPIを使用して検出可能な場合、WeakMapインスタンスは以前に利用できなかったサイドチャネルを作成する可能性があります( )。
あなたがして、間接的にGCプロセスを観察することができたので、可算WeakMapは、おそらくまた、GCに影響を与える可能性があります。したがって、予測可能な設計を保証するために、clear
も削除されました。