zoukankan      html  css  js  c++  java
  • ES6 WeakSet数据结构 与Set十分相似

    它与Set十分相似,对象的值也不能是重复的,与Set不同点:   
    1.WeakSet成员只能够是对象。 
    2.作为WeakSet成员的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占用的内存,不考虑 该对象还存在于WeakSet之中。这个特点意味着,无法引用WeakSet的成员,因此WeakSet是不可遍历的。
    3.使用WeakSet存储对象实例的好处是,由于是对对象实例的引用,不会被计入内存回收机制,所以删除实例的时候,不用考虑weakset,也不会出现内存泄漏。
    //---错误---   
    var weakset = new WeakSet();   
    weakset.add(5);   
    //---正确---   
    var weakset = new WeakSet();   
    weakset.add({});        //添加   
    var weakset = new WeakSet([[1, 2], [3, 4]]);   
    //---例子------------------------------------   
    var weakset = new WeakSet();   
      let aObj = {a:'aa'};   
      let bObj = new String("你好");   
      let cObj = new Number(8);   
      weakset.add(aObj);   
      weakset.add(bObj);   
      weakset.add(cObj);   
    //---删除-----   
    weakset.delete(aObj);   
    bObj=null;      //把对象删除,weakset中的对象也没了   
    console.log(weakset.has(bObj)); //weakset不能取值,也不能显示,只用来表示是否有重复的对象                                
  • 相关阅读:
    pandas Dataframe filter
    process xlsx with pandas
    data manipulate in excel with easyExcel class
    modify registry in user environment
    add number line in vim
    java import webservice
    ctypes MessageBoxA
    music 163 lyrics
    【python实例】自动贩卖机
    【python基础】sys模块(库)方法汇总
  • 原文地址:https://www.cnblogs.com/Model-Zachary/p/6131321.html
Copyright © 2011-2022 走看看