Ho attraversato un JavaScript library che implementa un cross-browser WeakMap in ES5. (WeakMap è previsto per ES6.)Implementazione WeakMap in EcmaScript5?
Come è possibile che questo funzioni senza supporto nel linguaggio JavaScript stesso?
Edit: Giusto per essere chiari, mi riferisco a un debole Mappa, non un regolare Map. Ho testato questo progetto usando il profiler di Chrome e le chiavi non sono tenute da riferimenti forti. Ottengono GC senza doverli rimuovere da WeakMap.
Considera di studiare il codice sorgente. –
@squint Sta facendo qualcosa di abbastanza profondo, non riesco a capire come non abbia un forte riferimento ai tasti. Ad esempio, non usa Array. – paleozogt
WeakMaps sono una funzionalità ES6 che consente di associare i dati a un oggetto, ma consente comunque di raccogliere i dati quando si trova l'oggetto, OPPURE l'istanza WeakMap è raccolta automaticamente. È impossibile fare entrambe queste cose senza supporto linguistico. La maggior parte degli shocks di WeakMap ignorano la parte relativa alla possibilità che i dati vengano convertiti in GC quando l'istanza WeakMap è GC. – AgentME