1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

修改map

This commit is contained in:
ruanyf 2014-10-19 08:01:00 +08:00
parent 20c74cbe52
commit c99b5720f6

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数据结构有以下属性和方法。