关于...语法。
来源:4-6 Vuex之state和getters

qq_缺南摸了个北_0
2019-06-22
//
let arr = [1,2,3] // Array.prototype[Symbol.iterator] = function * () {xxxxxx}
arr[Symbol.iterator] = function * () {
yield '呵呵'
yield '哈哈'
}
console.log(arr)
for (let a of arr) {
console.log(a) // 呵呵 哈哈
}
let arr2 = [...arr]
console.log(arr2) // ['呵呵','哈哈']
let obj = {
name: 'abc'
}
let obj2 = {
...obj, // Object.prototype上没有设置 [Symbol.iterator] 的迭代器函数,为什么可以使用扩展方法呢?
age: 22
}
console.log(obj2) // {name:'abc',age:22}
它压根就没有实现迭代器呀?使用 for of
直接报错 obj is not iterable
但是在
let obj2 = {
...obj, // Object.prototype上没有设置 [Symbol.iterator] 的迭代器函数,为什么可以使用扩展方法呢?
age: 22
}
Object.prototype上没有设置 [Symbol.iterator] 的迭代器函数,为什么obj可以使用扩展方法呢?
写回答
1回答
-
具体如何实现我也不是很清楚,但是obj可以通过keys或者entries获取可遍历的内容,可能跟这个有关
012019-06-22
相似问题