创建基于 Null 的对象
看前同事写的代码,用 Object.create(null)
去初始化对象而不是用 null 或者 {}
,觉得有点好奇,手动敲了下,发现这几种方式初始化对象是有差别的。
var a = {} |
以上代码初始化一个对象 a,对象 a 继承自 Object 对象,所以原型链上会包含 Object 对象的属性和方法。
a = Object.create(null); |
上面这段代码用 Object.create(null)
的方式创建对象,由于对象的原型是 null,所以原型链上不会继承任何东西,创建的是一个干净的对象。
综上,若想继续调用 valueOf 等继承自 Object 的属性和方法,可以用 {}
来初始化对象,若想创建一个全新的干净对象,可以使用 Object.create(null)
初始化对象
本文标题:创建基于 Null 的对象
文章作者:Canace
发布时间:2021-03-12
最后更新:2023-05-26
原始链接:https://canace.site/%E5%88%9B%E5%BB%BA%E5%9F%BA%E4%BA%8Enull%E7%9A%84%E5%AF%B9%E8%B1%A1/
版权声明:转载请注明出处
分享