关于...语法。
来源: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
相似问题
