tangyuxian
文章79
标签37
分类5
js-{}与new Object()的区别是什么?

js-{}与new Object()的区别是什么?

{} 这个叫做对象字面量,new Object()中没有传入参数,与{}是一样的

概述

var a = {};

var b = new Object();

这两种创建对象方式,从测试效果来看,{}会快一点。

{} 这个叫做对象字面量

如果new Object()中没有传入参数,与{}是一样的。

但是如果传入不同的参数,会有不同的效果。

传入String 返回String,类似new String()

传入Number 返回Number,类似new Number()

传入Object 返回Object,其实没啥用

var Obj = function() {};

var a = {};

var b = new Object();

var c = new Obj();

c最快,a次之,b最慢

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


参考文档:简书文章:{}与new Object()的区别是什么?

扩展阅读:脚本之家文章:new Array()和var arr=[]用法区别

本文作者:tangyuxian
本文链接:https://www.tangyuxian.com/2021/02/25/%E5%89%8D%E7%AB%AF/JavaScript/js-%7B%7D%E4%B8%8Enew%20Object()%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可