请问new一个对象和直接给一个变量赋值{}的区别是什么?

以下这两种写法有什么区别?

let obj = new object();
let obj = {};
阅读 2.7k
2 个回答

前者多了 __proto__ 指向赋值和 this 指向赋值,从执行效率上来讲后者这种字面量直接赋值会更高一些(实际使用中其实可忽略不计,V8 对此是有优化的);从执行结果上看二者没区别。

P.S. 题目中应为 new Object(),对于类名来说首字母大写。

new Object(){} 没有区别,只是声明方式不同,但如果代码修改了全局 Object 构造函数,如 Object = 'abc',那 new Object() 将会报错,{} 仍然正常

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题