「JavaScript高級プログラム設計」で見たコードの疑問?
1409 ワード
<html>
<head>
<title></title>
<script type="text/javascript">
function StringBuffer(){
this.strings = new Array();
}
StringBuffer.prototype.append = function(str){
this.strings.push(str);
}
StringBuffer.prototype.toString = function(){
return this.strings.join("");
}
var d1 = new Date();
var str = "";
for(var i=0;i<100000;i++){
str += "text";
}
var d2 = new Date();
document.write("cost1: "+(d2.getTime()-d1.getTime())+" millisecondes");
var buf = new StringBuffer();
var d3 = new Date();
for(var i=0;i<100000;i++){
buf.append("text");
}
var resultStr = buf.toString();
var d4 = new Date();
document.write("<br/>cost2: "+(d4.getTime()-d3.getTime())+" millisecondes");
</script>
</head>
<body>
</body>
</html>
このコードを実行したら、本で言っていた「+」で接続すると効率が低くなります.資源を消費して、アラー・ジョイン(「」)方式を採用すると、効率が前者より50%-60%高くなりますが、試してみたらそうではないことが分かりました.どこの問題ですか?教えてください.