在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('');
}
}
* 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 >
< 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 >