• 遍历器接口


    Symbol是种新的数据类型,表示独一无二,通常用于定义对象的属性名,[Symbol()]。
    一、什么是遍历器接口?
    一个数据结构有遍历器接口的特征是:它有Symbol.iterator属性,它有next()方法,返回一个包含value和done属性的对象。
    原生具备遍历器接口的数据结构:Array,Map,Set,String,TypedArray,函数的arguments对象,NodeList对象。

    //遍历数组
    const arr = [1,2,3,4,5];
    var a = arr[Symbol.iterator]();
    a.next();

    二、自定义函数生成遍历器接口

    const myObj = {};
    myObj[Symbol.iterator] = function () {
      return {
        next: function () {
          return {
            value: 1,
            done: true
          }
        }
      }
    }
    
    myObj[Symbol.iterator]().next()
    const myObj = {
      [Symbol.iterator] : function () {
        return {
          next: function () {
            return {
              value: 1,
              done: true
            }
          }
        }
      }
    }
    
    myObj[Symbol.iterator]().next()

    三、generator函数生成遍历器对象

    const myObj = {};
    
    myObj[Symbol.iterator] = function * demoFn(){
        yield ['name', 'Camille'];
        yield ['age', 26]
    }
    
    for (let [key, value] of myObj) {
      console.log(`${key}: ${value}`);
    }
    const myObj={
        * [Symbol.iterator]() {
                yield ['name', 'Camille'];
                yield ['age', 26]
        }
    }
    
    for (let [key, value] of myObj) {
      console.log(`${key}: ${value}`);
    }
  • 相关阅读:
    请多指教
    第九周作业总结
    win10系统开机输入密码黑屏解决方法
    第八周作业总结
    第七周作业总结
    第六周作业总结
    第五周作业总结
    第四周作业
    第三周作业
    2019年春季学期第二周作业
  • 原文地址:https://www.cnblogs.com/camille666/p/es_iterator.html
Copyright © 2020-2023  润新知