js为什么说对象字面量赋值比new Object()高效?

平时都是以对象字面量来初始化js空对象的,即 var obj={}, 只是觉得这样子比 var obj=new Object() 来的简单粗暴,没去纠结其性能不性能的,按两个键就完成的事情我才懒得去敲2个单词呢╮(╯▽╰)╭,何况有的ide还自动帮你成对大括号。
偶尔看到网上有人在讨论,自己就直接在chrome上做了个对比试验,结果如下:


至于原因也就无外乎,函数调用的额外开销,如网友的总结:

{} 是字面量,可以立即求值,而 new Object() 本质上是方法(只不过这个方法是内置的)调用,既然是方法调用,就涉及到在proto链中遍历该方法,当找到该方法后,又会生产方法调用必须的堆栈信息,方法调用结束后,还要释放该堆栈

你看,构造方式调用函数既要去找那个方法在哪里,又要执行方法体的内容 balabala, 每次都要这么去搞 自然开销就慢慢的躲起来了。 再回想设计模式里边的单例Singleton,在主要为了使用其对象行为,而不关心实例的隔离状态时,不也是为了省去扭来扭去的开销么。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,188评论 18 399
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,401评论 2 17
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,883评论 0 9
  • 一、JavaScript基础知识回顾 1.1 JavaScript 1.1.1 javascript是什么? Ja...
    福尔摩鸡阅读 5,327评论 0 7
  • 你在听吗, 我的歌声里没有你, 你在看吗, 我的字句里没有你, 你在想吗, 我的思念里没有你, 你在说话, 我看见...
    天天霸王餐阅读 1,792评论 0 1

友情链接更多精彩内容