javascript是解释型语言,你代码里并未调用sb.toString()。

解决方案 »

  1.   

    楼上的说的很清楚,你没有执行tostring()方法自然不会调用你的错误代码,把程序改成下面的看看是否会
    报错
    <script type="text/ecmascript">
    function StringBuffer()
            {
                this._Strings=new Array();
            }       
            
            StringBuffer.prototype.append=function(item)
            {
                this._Strings.push(item);
            }
            
            StringBuffer.prototype.toString=function()
            {
                return this._Strings.joing("");
            }
            
            var d1=new Date().getTime();
            var sb=new StringBuffer();
            for (var i=0;i<10000;i++)
            {
                sb.append("test");
            }
            var d2=new Date().getTime();
            var result1=d2-d1;
            
            var d3=new Date().getTime();
            var sValue="";
            for (var i=0;i<10000;i++)
            {
                sValue+="test";
            }
            var d4=new Date().getTime();
            var result2=d4-d3;
            
            window.alert(sb);
    </script>
      

  2.   

    哎呀呀,是我粗心,是的,这个toString()方法是没有解释...谢谢两位..