在Javascript中我们经常会使用数组来进行字符串的拼接,以节省性能开销。下面是一个简洁的StringBuilder类及其使用方法:
/*
* String Builder Class
* Author: Robin Chen ( robchen@126.com )
*/
var StringBuilder = function(){
this.cache = [];
if(arguments.length)this.append.apply(this,arguments);
}
StringBuilder.prototype = {
prepend:function(){
this.cache.splice.apply(this.cache,[].concat.apply([0,0],arguments));
return this;
},
append:function(){
this.cache = this.cache.concat.apply(this.cache,arguments);
return this;
},
toString:function(){
return this.getString();
},
getString:function(){
return this.cache.join('');
}
}
使用方法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String Builder</title>
<script type="text/javascript" src="stringbuilder.js"></script>
<script type="text/javascript">
var sb = new StringBuilder('my',' friend,');
sb.append('I');
sb.append(' am');
sb.append(' Robin',' Chen.');
sb.prepend('hi,');
sb.prepend('Hi,','hi,');
alert(sb);
alert(sb.getString());
</script>
</head>

<body>
</body>
</html>
/*
* String Builder Class
* Author: Robin Chen ( robchen@126.com )
*/
var StringBuilder = function(){
this.cache = [];
if(arguments.length)this.append.apply(this,arguments);
}
StringBuilder.prototype = {
prepend:function(){
this.cache.splice.apply(this.cache,[].concat.apply([0,0],arguments));
return this;
},
append:function(){
this.cache = this.cache.concat.apply(this.cache,arguments);
return this;
},
toString:function(){
return this.getString();
},
getString:function(){
return this.cache.join('');
}
}使用方法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String Builder</title>
<script type="text/javascript" src="stringbuilder.js"></script>
<script type="text/javascript">
var sb = new StringBuilder('my',' friend,');
sb.append('I');
sb.append(' am');
sb.append(' Robin',' Chen.');
sb.prepend('hi,');
sb.prepend('Hi,','hi,');alert(sb);
alert(sb.getString());
</script>
</head>
<body>
</body>
</html>

prepend:
1万+





