zoukankan      html  css  js  c++  java
  • 如何判断一个对象是否有部署Iterator接口

    首先 Iterator(遍历器) 是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。

    那怎么判断一个对象是否有部署Iterator接口?

    答案是看这个对象有没有 Symbol.iterator 方法,Symbol.iterator属性本身是一个函数,就是当前数据结构默认的遍历器生成函数。执行这个函数,就会返回一个遍历器。至于属性名Symbol.iterator,它是一个表达式,返回Symbol对象的iterator属性,这是一个预定义好的、类型为 Symbol 的特殊值,所以要放在方括号内

      let aa = []
      console.log(typeof aa[Symbol.iterator]) // function
    

    原生具备 Iterator 接口的数据结构如下:

    Array
    Map
    Set
    String
    TypedArray
    函数的 arguments 对象
    NodeList 对象

    笨鸟飞呀飞~
  • 相关阅读:
    康托展开
    Linux Command Line Basics
    hihoCoder 1401 Registration
    C++ 参考网站
    Linux 下的常用工具
    SQL 命令
    GNU MAKE 笔记
    一道基本的计算几何题
    uva 1451 平均值
    bzoj 1826 缓存交换
  • 原文地址:https://www.cnblogs.com/geekfeier/p/15097658.html
Copyright © 2011-2022 走看看