账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于ES6中的展开语法
    35
    0

    通常我们都这样写代码:

    var obj = {"name":"xxx"}
    console.log({...obj}) //{"name":"xxx"}

    或者

    var arr = [1,2,3,4]
    console.log([...arr]) // [1,2,3,4]

    有没有试过这样的写法

    var arr = [1,2,3,4]
    console.log({...arr}) // {0:1,1:2,2:3,3:4}

    但是反过来却不行

    var obj = {"name":"xxx"}
    console.log([...obj]) //object is not iterable (cannot read property Symbol(Symbol.iterator))

    这是问题一

    问题二:

    经过查资料得知:扩展运算符背后调用的是遍历器接口(Symbol.iterator),如果一个对象没有部署这个接口,就无法转换。可是Object.prototype上面并没有Symbol.iterator函数,为什么对象也可以用扩展运算符呢?

    2
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 二更半 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部