問題タブ [weakmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3018 参照

javascript - ECMAScript 6 WeakMap とは?

この説明を読んだ後: http://wiki.ecmascript.org/doku.php?id=harmony:weak_maps

コツをつかもうとしているのですが、全体像がわかりません。それはすべてについて何ですか?Firefox 6 でサポートされているようです: http://kangax.github.com/es5-compat-table/non-standard/

0 投票する
1 に答える
897 参照

javascript - DOMノード参照用のIE8準拠のウィークマップ

私は文字通り持っていたいDictionary<Node, Object>

これは基本的にES6WeakMapですが、IE8で作業する必要があります。

私が欲しい主な機能は

  • メモリリークを最小限に抑える
  • O(1)ノードを指定したオブジェクトのルックアップ。

私の実装:

私の実装はO(1)ですが、メモリリークがあります。

メモリリークを最小限に抑えるためにこれを実装する正しい方法は何ですか?

0 投票する
7 に答える
34887 参照

javascript - ES6 MapとWeakMapの違いは何ですか?

これこのMDNページを見ると、MapsとWeakMapsの唯一の違いは、WeakMapsの「size」プロパティが欠落していることのようです。しかし、これは本当ですか?それらの違いは何ですか?

0 投票する
1 に答える
2919 参照

javascript - JavaScript で要素をハッシュのキーとして使用する

DOM 要素をキーとしてハッシュを作成したいと考えています。これを次のコードで示します。

ハッシュがそれぞれの一意の値にマップされるようにするにはどうすればよいElementですか? 生の ID 文字列をキーとして使用できないことに注意してください。ID のないものを含め、
任意の文字列が渡される可能性があるためです。Element

0 投票する
1 に答える
172 参照

gwt - GWT で WeakMap ラッパー実装を作成する -- エラーが発生する

私は最近、私が現在抱えている多くの複雑な問題を解決する、今後の js (ハーモニー) のウィークマップ サポートについて検討しています。幸いなことに、かなり優れたブラウザー サポートを備えた shim ( https://github.com/Benvie/WeakMap ) があり、GWT ラッパーの実装に飛躍することになりました。

これはかなり単純なはずですが、単体テストでエラーがスローされます。私はJSNIにかなり慣れていないので、些細なことを見逃しているのではないかと思いました:

ここに私のGWTクラスがあります:

これが私のテストです:

これが私が得ているエラーです:

また:

  • JavaScriptが正しく含まれていると確信しています(私はその部分を十分に理解しました)
  • setup() メソッドは、weakmap オブジェクトを正しく作成し、それを nativeWeakMap JavaScript オブジェクトに割り当てます。これを stdout に出力できるので、null ではないことがわかります。

何か案は?これは GWT への素晴らしい追加となるでしょう!

0 投票する
2 に答える
2373 参照

javascript - ES6 の WeakMap を列挙できないのはなぜですか?

JavaScript (および関連) に再参入する前に、私は多くの ActionScript 3 を実行しました。ただし、AS3 バージョンは通常のジェネリック オブジェクトのように列挙可能でしたが、WeakMap には特に.keys()orがありません.values()

AS3 バージョンでは、いくつかの非常に興味深く便利な構造をリグすることができましたが、JS バージョンは多少制限されているように感じます。何故ですか?

Flash VM がそれを実行できるとしたら、ブラウザーが同じことを実行できない理由は何ですか? それがどのように「非決定論的」になるかを読みましたが、それは一種のポイントですよね?

0 投票する
8 に答える
88088 参照

javascript - ES6 WeakMap の実際の用途は何ですか?

WeakMapECMAScript 6 で導入されたデータ構造の実際の用途は何ですか?

弱いマップのキーは、対応する値への強い参照を作成するため、弱いマップに挿入された値は、そのキーがまだ生きている限り消えることはありません。メモ テーブルには使用できませんキャッシュや、通常弱い参照、弱い値を持つマップなどを使用するその他のもの。

これは私には思えます:

...これは単なる回りくどい言い方です:

見逃している具体的なユースケースは何ですか?

0 投票する
1 に答える
1333 参照

javascript - WeakMaps を使用して Javascript で通常の弱参照を作成する

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

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

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

0 投票する
3 に答える
11506 参照

javascript - 弱いマップを反復する方法は?

JavaScript の WeakMap ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap ) では、設計上、キー、長さ、またはサイズを取得できません。

それにもかかわらず、何らかの方法でエントリをループすることは可能ですか?

そうでない場合.. Chromeコンソールはどのようにこれを行いますか?

ここに画像の説明を入力