我有以下定义数组的代码,然后带有生成器的迭代器对象从该数组中生成值,并使用扩展运算符输出每个值:
\nconst arr = ['0', '1', '4', 'a', '9'];\nconst my_obj = {\n [Symbol.iterator]: function*() {\n for(let index of arr) {\n yield `${index}`;\n }\n }\n};\n\nconst all = [...my_obj] \n\nconsole.log(...my_obj)\nRun Code Online (Sandbox Code Playgroud)\n结果是:
\n0\n1\n4\na\n9\nRun Code Online (Sandbox Code Playgroud)\n我不明白\xe2\x80\x99t 的是扩展运算符变量\xe2\x80\x9c...my_obj\xe2\x80\x9d 如何获取数组的值如果\xe2\x80\x9cmy_obj\xe2\x80 \x9d 是一个对象,而不是数组。据我了解: \xe2\x80\x9cmy_obj\xe2\x80\x9d 正在接收一个对象,如果应用扩展运算符,它应该得到 \xe2\x80\x9ckey:value\xe2\x80\x9d。
\n有人能解释一下它是如何获得这些值的吗?
\n