• es6数组解构的原理初探


    原理

    以前只用过数组解构为数组,或者将其他类数组解构为数组,但是还不知道对象为什么不能解构为数组

    后面学习到了Symbol.iterator属性以后才知道,只要一个对象是可迭代的,那它就可以迭代为数组。

    代码示例如下

    代码

    let obj = {
        0: 'zero',
        1: 'one',
        2: 'two',
        length: 3
    }
    
    // 解构的原理
    
    obj[Symbol.iterator] = function() {
        // 返回一个迭代器对象
        return {
            cur: 0,
            final: this.length,
            next() {
                if (this.cur < this.final) {
                    return {
                        value: this.cur++,
                        done: false
                    }
                } else {
                    return {
                        done: true
                    }
                }
            }
        }
    }
    
    for (let val of obj) {
        console.log(val);
    }
    
    console.log([...obj]); // 对象解构为数组
    
  • 相关阅读:
    mybatis动态sql和分页
    mybatis入门
    IDEA
    Linux环境搭建
    svn
    jwt
    Vuex
    SPA项目开发之CRUD+表单验证
    JavaScript可视化框架——Echarts
    python+selenium六:隐式等待
  • 原文地址:https://www.cnblogs.com/azoux/p/16087575.html
Copyright © 2020-2023  润新知