Posted on 2008-6-5 星期四
在javascript编程中经常要连接字符串,很多人都习惯用:
-
var str=“hello”;
-
str+=“world”;
这种操作在JS中要经过6个步骤,非常耗资源:
(1) 创建存储”hello”的字符串.
(2) 创建存储”world”的字符串.
(3) 创建存储连接结果的字符串.
(4) 把str的当前内容复制到结果中.
(5) 把”world”复制到结果中.
(6) 更新str,使它指向结果.
解决方法就是用array对象来连接字符串:
-
var arr = new Array;
-
arr[0] = “hello”;
-
arr[1] = “world”;
-
var str = arr.join(“”);
执行只需两步,
(1) 创建存储结果的字符串.
(2) 把每个字符串复制到结果中的合适位置.
下面为了方便使用,给出了一个字符串连接类:
-
function SGen(){this._str_ = new Array;};
-
SGen.prototype.add = function (str){this._str_.push(str);};
-
SGen.prototype.toString = function (){return this._str_.join(“”);};
-
-
var buffer = new SGen();
-
buffer.add(“hello “);
-
buffer.add(“world”);
-
var result = buffer.toString();
-
buffer = null;


