为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开心每一天1111 2019-04-19 16:12:03
RTjavascriptvara={};varb=newObject();这两种创建对象方式的区别是什么?=====的确从测试效果来看,{}会快一点。但是为什么{}会比newObject()快呢?
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

{}这个叫做对象字面量
如果newObject()中没有传入参数,与{}是一样的。
但是如果传入不同的参数,会有不同的效果。
传入String返回String,类似newString()
传入Number返回Number,类似newNumber()
传入Object返回Object,其实没啥用
当然还有其他的,比如传入数组等等~基本都是返回传入的类型,并且传入前后的对象是不变的,也就是不会进行一次拷贝。也就是如下代码
vara={test:1};
varb=newObject(a);
a==b;
//true
也就是如上的效果
                            
查看完整回答
反对 回复 2019-04-19
?
aluckdog

TA贡献1847条经验 获得超7个赞

實驗缺乏對照組。
varObj=function(){};
vara={};
varb=newObject();
varc=newObj();
這樣纔可以。結果c遠快於a和b,a略快於b。
然而
varVec=function(a,b){this.a=a;this.b=b;}
newVec(1,1)快於newObj;o.a=1;o.b=1;和{a:1,b:1}
注:以上測試平臺均爲chrome
看樣子不同瀏覽器差異很大,不過newObject和對象字面量一如既往地慢倒是不爭的事實。
最穩妥的方案目前是newVec(1,2)
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 305 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信