weakmap

    1熱度

    1回答

    class Cat { storage = new Map() constructor(id) { if(storage.has(id)) return storage.get(id) storage.set(id, this) } } 我想要從存儲中刪除對象,如果在應用程序中不使用它的引用。但是,如果應用程序中的鏈接存在,並且我們試圖

    0熱度

    1回答

    WeakMap在JavaScript中的正確用法是什麼?我使用它時可能會發生什麼樣的時間問題?特別是,我想知道在以下情況會發生什麼: var wm1 = new WeakMap() var o1 = {}, o2 = function(){}, o3 = window; // in other method: wm1.set(o1, 37); wm1.set(o2, "

    2熱度

    1回答

    我最近一直在尋找即將推出的js(和諧)weakmap支持,它可以解決我目前遇到的一些複雜問題。 Luckly有一個墊片(https://github.com/Benvie/WeakMap)具有相當不錯的瀏覽器支持,這讓我決定,跨越式地實現GWT包裝。 我覺得這應該是很簡單的,但我的單元測試引發錯誤。由於我是相當新的JSNI我想,也許這是缺少一些小事: 這裏是我的GWT類: public class

    1熱度

    1回答

    有沒有辦法在Javascript中創建WeakMap的任何其他弱引用來存儲鍵值對,其中鍵是String/Number,value是Object。 的引用將不得不工作是這樣的: const wMap = new WeakRefMap(); const referencer = {child: new WeakRefMap()} wMap.set('child', temp.child); wM

    13熱度

    1回答

    我正在嘗試使用WeakMaps來做明顯的事情:我想創建一個弱引用。特別是,我想擁有一個沒有影響聽衆生活的事件監聽器列表。 所以我很興奮地發現WeakMaps,直到我看到它們只是爲了滿足一個(相當少見的)用例而被構建的,擴展了被封閉的對象。我想不出什麼時候我想這樣做,但我總是需要聽衆名單。 這是可能的以某種聰明的方式使用WeakMaps我還沒有想過這樣做?

    0熱度

    2回答

    我有memoized FN,其中FN由兩個輸入參考memoized: let NewRefCursor = memoized( (deref, swap) => refToHash(deref) + refToHash(swap), // memoizer identity fn (deref, swap) => new RefCursor(deref, swap)); // t

    8熱度

    2回答

    JavaScript WeakMap(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap)不允許您通過設計獲得密鑰或長度或大小。 是否有可能以某種方式循環條目? 如果不是,Chrome控制檯如何做到這一點?

    1熱度

    1回答

    地圖和WeakMap之間的主要區別(我認爲)認爲: 如果我們存儲的對象地圖,然後在其他地方後該對象不參照,該對象將仍然沒有包含在垃圾收集過程中,我們仍然可以在Map中訪問它。 但是,如果它存儲在WeakMap然後稍後那個對象沒有被引用到代碼中的其他地方,那麼它將被垃圾收集。 現在看看這個例子中,我得到它的輸出看起來即使在地圖對象不具有參考不再別的地方現在被垃圾收集: const userRoles

    4熱度

    1回答

    我在使用JavaScript弱點映射時,在谷歌瀏覽器開發人員控制檯中嘗試此代碼後,運行時使用--js-flags =「 - expose-gc」,我不明白爲什麼如果a被gc化了,那麼弱映射就繼續引用ab。 var a = {listener: function(){ console.log('A') }} a.b = {listener: function(){ console.log('B')

    6熱度

    1回答

    function f() { const w = new WeakMap(); const o = {}; w.set(o, { v: o }); return w; } const weakMap = f(); 對於給定的代碼,將唯一的weakMap項目視爲可達或不可以?因此,它會被垃圾收集嗎? PS:從規範的角度提出這個問題,而不是特定的實