JS の再帰 (追試)
http://d.hatena.ne.jp/hagino_3000/20090317/1237219357 を見て名前つけてるかどうかで違うらしいことを知ったので他のブラウザでもテスト
方法は前やった方法です http://subtech.g.hatena.ne.jp/cho45/20071208/1197050774
IE 以外は全て Mac (Tiger memory 2G) 上です。IE7 は memory 2G, IE8 は VirtualPC 上 memory 128MB です。
A
javascript:n=0;(function(){n++;arguments.callee();})();
javascript:alert(n);
- Firefox 3.1b3
- 3000
- Safari 3.2.1
- 500
- Opera 9.50 (Build 4870)
- 9999
- IE 7.0.5730.13
- 1757
- IE 8.0.6001.18372
- 1053
B
javascript:n=0;(function me(){n++;me();})();
javascript:alert(n);
一応やってみたけどこれも同じ結果だった
javascript:n=0;f=(function(){n++;f();});f();
- Firefox 3.1b3
- 3000
- Safari 3.2.1
- 500
- Opera 9.50 (Build 4870)
- 9999
- IE 7.0.5730.13
- 2510
- IE 8.0.6001.18372
- 1451
IE 以外は変わらないみたいですね。なぜか 8 になって減ってるんですがなんなんでしょうか。メモリに影響されたりとかまさかしないですよね…… それにしてもなんで名前つけるかで深さ変わるんだろう
Fx は 3.0 beta のときはものすごい深さ (261503) までいけてましたが、3000 で制限するようにしたっぽいですね。
Opera は小学生みたいでかわいいです。