- 主题:[js] 静态方法链
这个写法和chain.sub().add()……相比好处在什么地方?
你为什么prefer这种写法?
想不明白啊
当然,我对func program还没有入门……
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 你這完全只是不喜歡方法鏈嘛
: 而且誰說不能調試的……
: 這個丟給 firebug,斷得很好
: ...................
--
修改:roy FROM 211.151.91.*
FROM 211.151.91.*
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 不是 prefer,而是不得不這麽寫……
: 首先一點,我寫這個是爲了用 foo(obj, args..) 這種靜態方法
: 挂到 obj 類底下寫成 obj.foo(args) 的不算數;
为啥非要用静态方法
obj.foo效率差很多吗?
: ...................
--
修改:roy FROM 211.151.91.*
FROM 211.151.91.*
测试了一下,好像直接函数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.*
恩,不混用框架就好了嘛
或者直接用框架提供的扩展机制,比如mootools的object.extend……
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 效率上並不會有什麽區別
: 我比較喜歡 foo(obj,args) 的原因是爲了讓工具方法能夠獨立出來
: 擧個典型的例子來講,比如在數組裏面查找一個對象的方法
: ...................
--
FROM 211.151.91.*