ES6的map类型和mobx的map类型在value()/keys()方法返回上的差别

@ckinmind 2017-04-01 05:26:22发表于 ckinmind/ReactCollect mobx

注意:

class Store {  
  @observable map1 = observable.map([
  ['key1', 'value1'],
  ['key2',  'value2'],
]);
  @observable map2 = new Map([
  ['key1', 'value1'],
  ['key2',  'value2'],
]);
  map3 = new Map([
  ['key1', 'value1'],
  ['key2',  'value2'],
]);
}

const store = new Store();

console.log(Array.isArray(store.map1.values())) // true
console.log(Array.isArray(store.map2.values())) // true
console.log(Array.isArray(store.map3.values())) // false

console.log(store.map1.keys();  // ['key1', 'key2']
console.log(store.map2.keys()); // ['key1', 'key2']
console.log(store.map3.keys()); // MapIterator {"key1", "key2"}

// values()方法类似keys()方法
 

测试结果表明,使用mobx的方式定义的map类型,通过values/keys方法返回的是一个数组,而原生定义的map类型返回的是遍历器

关联 #107