正在回答
同学你好,解答如下:
(1)“为什么函数里面console.log([...arguments]);不会报错”请问是放在哪一个函数中呢?这边测试放在原来的代码中是报错的。不过扩展运算符是可以直接使用在类数组上面的!
(2)迭代器:迭代器就是为实现对不同集合进行统一遍历操作的一种机制,只要给需要遍历的数据结构部署Iterator接口,通过调用该接口,或者使用消耗该接口的API实现遍历操作。
Symbol.iterator方法就是给使用的对象定义迭代器,让其实现“可被遍历”。
(3)数组可以使用扩展运算符,是因为数组本身自带Symbol.iterator。那么给对象添加Symbol.iterator的话,对象也就可以使用扩展运算符,而不报错了哦。
不过这部分内容比较难,建议同学先了解一下,等到以后有一定的知识体系的时候再来复习下现在不太懂的内容。
祝学习愉快~
同学你好,报错是因为js无法使用扩展运算符展开对象。想要解决报错,需要先了解几个知识点:
1、Symbol.iterator为每一个对象定义了默认的迭代器。该迭代器可以被 for…of 循环使用。
2、Reflect.ownKeys静态方法 Reflect.ownKeys() 返回一个由目标对象自身的属性键组成的数组。
3、next方法是迭代器iterator的一个方法,它的返回至少有一个对象,且对象中有两个属性:value和done
(1)value 用于定义迭代出来的值
(2)done 布尔类型:
①设置true,则直接返回;
②不设置或者设置false,则继续走方法,类似for循环。
接下来改写同学的这段代码:
如果我的回答帮助了你,希望采纳,祝学习愉快!
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星