zoukankan      html  css  js  c++  java
  • 【JavaScript】WeakSet

    以下内容为学习记录,可以参考 MDN 原文。

    环境

    • node v12.18.1
    • npm 6.14.5
    • vscode 1.46
    • Microsoft Edge 83

    概念

    WeakSet 对象允许你将弱保持对象存储在一个集合中。

    构造函数

    使用 WeakSet 构造函数,您可以创建 WeakSet 对象,这些对象将弱保存的对象存储在集合中。

    var ws = new WeakSet();
    var foo = {};
    var bar = {};
    
    ws.add(foo);
    ws.add(bar);
    
    ws.has(foo);    // true
    ws.has(bar);    // true
    
    ws.delete(foo); // removes foo from the set
    ws.has(foo);    // false, foo has been removed
    ws.has(bar);    // true, bar is retained
    

    实例方法

    add

    add() 方法在 WeakSet 对象的最后一个元素后添加新的对象。

    const weakset1 = new WeakSet();
    const object1 = {};
    
    weakset1.add(object1);
    console.log(weakset1.has(object1));
    // expected output: true
    
    try {
      weakset1.add(1);
    } catch (error) {
      console.log(error);
      // expected output: "Error: Invalid value used in weak set" in Chrome
      // expected output: "TypeError: WeakSet value must be an object, got the number 1" in Firefox
    }
    

    delete

    delete() 方法从 WeakSet 对象中移除指定的元素。

    const weakset1 = new WeakSet();
    const object1 = {};
    
    weakset1.add(object1);
    
    console.log(weakset1.has(object1));
    // expected output: true
    
    weakset1.delete(object1);
    
    console.log(weakset1.has(object1));
    // expected output: false
    

    has

    has() 方法根据 WeakSet 是否存在相应对象返回布尔值。

    const weakset1 = new WeakSet();
    const object1 = {};
    const object2 = {};
    
    weakset1.add(object1);
    
    console.log(weakset1.has(object1));
    // expected output: true
    
    console.log(weakset1.has(object2));
    // expected output: false
    
  • 相关阅读:
    qt5--数据类型转换
    qt5-QWidget坐标系统和大小和展示区域
    qt5---布局
    qt5-信号和槽
    tomcat中文请求乱码问题
    centos安装ab测试工具
    golang学习之go简单博客应用
    nodejs的jsonrpc调用
    centos下mongodb安装
    使用connect-multiparty限制nodejs图片上传
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/13636302.html
Copyright © 2011-2022 走看看