Javascript创建Object的几种方式
2009-01-22 12:36
225 查看
在javascript中创建一个对象有以下几种方式,如下:
那这3种方式各自的性能怎样呢,下面通过一段代码进行分析:
<script>
var start = new Date();
for (var i=0;i<100000 ;i++ )
{
var bj = new Object();
obj.id=i;
obj.name="test";
obj.callFunc=function(){
alert("callFunc");
}
}
document.write(""+(new Date() - start)+"ms");
start = new Date();
for (var i=0;i<100000 ;i++ )
{
var bj = {};
obj.id=i;
obj.name="test";
obj.callFunc=function(){
alert("callFunc");
}
}
document.write(""+(new Date() - start)+"ms");
start = new Date();
for (var i=0;i<100000 ;i++ )
{
var bj = {
id:i,
name:"test",
callFunc:function(){
alert("callFunc");
}
};
}
document.write(""+(new Date() - start)+"ms");
</script>
提示:您可以先修改部分代码再运行
这里可以说,
第一种方法创建对象是效率最低的,
第二种方式居中,第三种方式最快.
另外:
执行效率和对象的多少以及对象属性的多少有关系:
<script>
var start = new Date();
for (var i=0;i<5000 ;i++ )
{
var bj = {
id:i,
name:"test",
callFunc:function(){
alert("callFunc");
}
,
callFunc2:function(){
alert("callFunc2");
}
,
callFunc3:function(){
alert("callFunc3");
}
,
callFunc4:function(){
alert("callFunc4");
}
}
}
document.write(""+(new Date() - start)+"ms");
start = new Date();
for (var i=0;i<10000 ;i++ )
{
var bj = {
id:i,
name:"test",
callFunc:function(){
alert("callFunc");
}
};
}
document.write(""+(new Date() - start)+"ms");
</script>
提示:您可以先修改部分代码再运行
上面这段代码同样可以看出,
虽然都是采用相同的第三种办法来创建对象,
但由于第一段代码中的属性有6个(function也算属性的一种),执行5000次,
而第二段代码属性为3个,执行10000次,显然第一段代码的效率明显要慢。
总结:
1, 创建对象尽量使用:
2,尽可能少的属性。
摘自:http://onlyaa.com/html/jsjc/20080613/2209.html
var bj = new Object(); obj.id=1; obj.name="test"; obj.callFunc=function(){ alert("callFunc"); } |
var bj = {}; obj.id=1; obj.name="test"; obj.callFunc=function(){ alert("callFunc"); } |
var bj = { id:1, name:"test", callFunc:function(){ alert("callFunc"); } }; |
<script>
var start = new Date();
for (var i=0;i<100000 ;i++ )
{
var bj = new Object();
obj.id=i;
obj.name="test";
obj.callFunc=function(){
alert("callFunc");
}
}
document.write(""+(new Date() - start)+"ms");
start = new Date();
for (var i=0;i<100000 ;i++ )
{
var bj = {};
obj.id=i;
obj.name="test";
obj.callFunc=function(){
alert("callFunc");
}
}
document.write(""+(new Date() - start)+"ms");
start = new Date();
for (var i=0;i<100000 ;i++ )
{
var bj = {
id:i,
name:"test",
callFunc:function(){
alert("callFunc");
}
};
}
document.write(""+(new Date() - start)+"ms");
</script>
提示:您可以先修改部分代码再运行
这里可以说,
第一种方法创建对象是效率最低的,
第二种方式居中,第三种方式最快.
另外:
执行效率和对象的多少以及对象属性的多少有关系:
<script>
var start = new Date();
for (var i=0;i<5000 ;i++ )
{
var bj = {
id:i,
name:"test",
callFunc:function(){
alert("callFunc");
}
,
callFunc2:function(){
alert("callFunc2");
}
,
callFunc3:function(){
alert("callFunc3");
}
,
callFunc4:function(){
alert("callFunc4");
}
}
}
document.write(""+(new Date() - start)+"ms");
start = new Date();
for (var i=0;i<10000 ;i++ )
{
var bj = {
id:i,
name:"test",
callFunc:function(){
alert("callFunc");
}
};
}
document.write(""+(new Date() - start)+"ms");
</script>
提示:您可以先修改部分代码再运行
上面这段代码同样可以看出,
虽然都是采用相同的第三种办法来创建对象,
但由于第一段代码中的属性有6个(function也算属性的一种),执行5000次,
而第二段代码属性为3个,执行10000次,显然第一段代码的效率明显要慢。
总结:
1, 创建对象尽量使用:
var bj = { id:1, name:"test", callFunc:function(){ alert("callFunc"); } }; |
摘自:http://onlyaa.com/html/jsjc/20080613/2209.html
相关文章推荐
- JavaScript中常见的几种创建对象的方式:基于对象扩充属性和方法、基于工厂方式创建对象、基于构造函数和基于原型
- javascript创建对象的几种方式
- JavaScript创建对象的几种方式总结
- JavaScript对象创建的几种方式
- Javascript创建对象的几种方式
- JavaScript对象创建的几种方式及使用方法
- [转载]javascript创建对象的几种方式
- Javascript中创建对象的几种方式
- Javascript创建对象的几种方式
- javascript创建数组的几种方式
- javascript 创建对象的几种方式
- JavaScript对象创建的几种方式及使用方法
- JavaScript中创建对象的几种方式
- JavaScript创建对象几种方式
- javascript一种新的对象创建方式-Object.create()
- 一种新的javascript对象创建方式Object.create()
- javascript 创建对象的几种方式
- 面向面试编程——javascript对象的几种创建方式
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第30讲_类和对象细节_创建对象的几种方式_js对象内存分析_学习笔记_源代码图解_PPT文档整理
- javascript创建对象的几种方式