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
    
  • 相关阅读:
    生命
    历史的分岔-中日产业发展史的对照和思考
    挑战自已
    丰台往事已成风,上下求索永不停
    VC6.0实现鼠标光标形状及大小的定制
    RelativeLayout
    16进制颜色代码
    html里的option错误
    Android用户界面设计:布局基础
    Activity详细介绍【官网】
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/13636302.html
Copyright © 2011-2022 走看看