什么叫'干净'的map
一般声明一个map对象我们使用字面量
的方法
let map = {};
我们知道,使用字面量声明的对象其实就是默认继承了Object
对象,也就是说这个对象拥有Object
的原型方法,比如:toString()
... 这样的对象我们可不叫干净的
。
那么该怎么做呢?
Object.create(proto, [propertiesObject])
: 这个方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。 (请查看浏览器控制台以获取视觉证据。)[以上MDN的]
MDN描述说,此方法有两个参数,
-
proto
, 新创建对象的原型对象。 -
propertiesObject
, 可选。如果没有指定为 undefined,则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。这些属性对应Object.defineProperties()的第二个参数。
创建一个'干净'的对象,我们就要借助上面的这个方法了
let cleanMap = Object.create(null);
null是基本数据类型,是没有原型的,所以讲null
作为第一个参数传入创建出来的对象就是'干净'的对象。这个对象不会继承任何。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。