修改map

This commit is contained in:
ruanyf
2014-10-19 08:01:00 +08:00
parent 20c74cbe52
commit c99b5720f6
+5 -3
View File
@@ -180,7 +180,7 @@ data[element] = metadata;
```
上面代码原意是将一个DOM节点作为对象data的键,但是由于对象只接受字符串作为键名,所以element被自动转为字符串[Object HTMLDivElement]
上面代码原意是将一个DOM节点作为对象data的键,但是由于对象只接受字符串作为键名,所以element被自动转为字符串`[Object HTMLDivElement]`
为了解决这个问题,ES6提供了map数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,对象也可以当作键。
@@ -197,9 +197,9 @@ console.log(m.get(o))
```
上面代码将对象o当作m的一个键。
上面代码使用set方法,将对象o当作m的一个键,然后又使用get方法读取这个键
Map函数也可以接受一个数组进行初始化。
map函数也可以接受一个数组进行初始化,该数组的成员是一个个表示键值对的数组
```javascript
@@ -245,6 +245,8 @@ map.get(k2) // 222
上面代码中,变量k1和k2的值是一样的,但是它们在Map结构中被视为两个键。
由上可知,map的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。这就解决了同名属性碰撞(clash)的问题,我们扩展别人的库的时候,如果使用对象作为键名,就不用担心自己的属性与原作者的属性同名。
**2)属性和方法**
Map数据结构有以下属性和方法。