测试了一下,好像直接函数call比成员函数call要慢
代码如下:
<script type="text/javascript">
var obj1={ a:"",b:""};
function foo(obj,arg) {
var str="";
obj.a=arg;
}
var obj2= {
a : "",
b : "",
foo: function (arg) {
this.a=arg;
}
}
var TIMES=100000;
var start=new Date();
for ( i =1;i<TIMES;i++ ) {
foo(obj1,i);
}
var end=new Date();
console.log("Time of function call %d",end.getTime()-start.getTime());
var TIMES=100000;
var start=new Date();
for ( i =1;i<TIMES;i++ ) {
obj2.foo(i);
}
var end=new Date();
console.log("Time of member function call %d",end.getTime()-start.getTime());
</script>
我这里的运行结果是:
Time of function call 1419
Time of member function call 1320
当然,相差不是很大:P
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 效率上並不會有什麽區別
: 我比較喜歡 foo(obj,args) 的原因是爲了讓工具方法能夠獨立出來
: 擧個典型的例子來講,比如在數組裏面查找一個對象的方法
: ...................
--
修改:roy FROM 211.151.91.*
FROM 211.151.91.*