Object.create(null)和{}

let a = {}let b = Object.create(null)有什么区别呢?

在浏览器开发者工具查看console.log(a)console.log(b)可以看到,a继承了Object的一些东西(基于原型链),而b是干净的空的。

所以b的方式不用担心自己定义属性的话会和原型链上的冲突;另外某些循环中,不需要去遍历原型链上的属性,可以提升一丢丢性能。
当然,这么做另一方面是丢掉了原型链上提供的所有属性或功能。

参考:https://juejin.im/post/5acd8ced6fb9a028d444ee4e

打赏
  • © 2016-2020 留叶
  • Powered by Hexo Theme Ayer
    • PV:
    • UV:

请我喝杯咖啡吧~

支付宝
微信