前端性能优化:创建对象
来源:互联网 发布:以太网数据帧格式详解 编辑:程序博客网 时间:2024/05/21 14:40
有的资料上说不同的创建对象的方式会有一定的性能差别,var obj =new Object();这种方式最慢,var obj = { name1: name1, name2: name2, name3: name3 ,name4:name1+name2}; 这种方式最快。但发展了这么多年,有变化吗?
测试代码如下:
var length=30000;/*new 的方式创建*/function CreateObj1(name1,name2,name3){ var obj =new Object(); obj.name1=name1; obj.name2=name2; obj.name3=name3; obj.name4=name1+name2; obj.name5=name1+name3; return obj;}/*不适用new 的方式创建,属性分别赋值*/function CreateObj2(name1,name2,name3){ var obj ={}; obj.name1=name1; obj.name2=name2; obj.name3=name3; obj.name4=name1+name2; obj.name5=name1+name3; // var obj = { name1: 1, name2: i + 10, name3: i + 3 }; return obj;}/*不适用new 的方式创建,属性一次性赋值*/function CreateObj3(name1,name2,name3){ var obj = { name1: name1, name2: name2, name3: name3 ,name4:name1+name2, name5:name1+name3}; return obj;}/*原始循环*/function Test1(){var date1=new Date().getTime(); var t=[];for(var i=0;i<length;i++){ t[i]=CreateObj1(1,"name"+i,i+10);}var date12=new Date().getTime();console.log("1Test"+((date12-date1)));}/*原始循环*/function Test2(){var date1=new Date().getTime(); var t=[];for(var i=0;i<length;i++){ t[i]=CreateObj2(1,"name"+i,i+10);}var date12=new Date().getTime();console.log("2Test"+((date12-date1)));}/*原始循环*/function Test3(){var date1=new Date().getTime(); var t=[];for(var i=0;i<length;i++){ t[i]=CreateObj3(1,"name"+i,i+10);}var date12=new Date().getTime();console.log("3Test"+((date12-date1)));}测试发现,随着对象的属性越来越多,三种方式的偏差越来越来越明显,但第三种方式的性能始终比其他两种方式好,不管是IE还是谷歌。
1 0
- 前端性能优化:创建对象
- 前端性能优化:创建对象二
- Unity性能优化 对象延迟创建
- Web 前端性能优化——使用索引对象
- Web 前端性能优化
- 网站前端性能优化
- Web 前端性能优化
- 前端性能优化参考资料
- 前端性能优化
- WEB前端性能优化
- 前端性能优化
- 前端性能优化原则
- 前端性能优化
- 前端性能优化
- 前端性能优化指南
- 前端性能优化
- 网站前端性能优化
- 聊聊前端性能优化
- HttpURLclient
- BAPI_SALESORDER_CREATEFROMDAT2 条件 定价元素
- 在MongoVUE中发现插入的时间和实际的时间相差8小时?
- 安卓APP与智能硬件相结合的简易方案
- unity 内存优化
- 前端性能优化:创建对象
- window7或8下,U盘安装Centos6.5双系统,问题总结
- 最大连续子序列
- 远程凭据不可用
- 171. Excel Sheet Column Number
- IntelliJ IDEA 常用设置讲解
- oracle数据库中查询一个表中的字段是否存在于另一个表中字段数据
- CRC-8-SAE J1850 的校验程序
- SSH免密码登录的配置