(5)String--原型属性prototype

String中没有trim(去除两端的字符串),可以自定义方法,但是只能传参等直接调用,与String对象可以说没什么关系,在js中可以用原型来使用str.trim()
这里就可以使用一个该字符串的原型属性来完成。
原型:就是该对象的一个描述,该描述中如果添加了新功能,那么该对象都会具备这些新功能,而prototype就可以获取到这个原型对象。
需求:想给String对象天界一个可以去除字符串两端空格的新功能,就可以通过原型来完成
给string的原型中添加一个新的功能
注意:给对象添加新的功能直接使用 对象.新内容 即可
String.prototype.len=199;//给String的原型对象中添加一个属性,名为len
①在html中写匿名函数

 String.prototype.trim=function ()//匿名函数
         {
              var start=0;
              var end=this.length-1;

              while(start<=end && this.charAt(start)==' ')
              {
                  start++;
                  println(start);
              }

              while(start<=end && this.charAt(end)==' ')
              {
                  end--;
              }

              return this.substring(start,end+1);

         }
        alert("-"+"  djv kl ".trim()+"-");

②可以写在js文档中方便调用
就是将①中的代码写入js文档中,在网页中加入
《script type=”text/javascript” src=”stringtool.js” 》《/script>》

练习①:将字符串转换为字符数组,用prototype实现

//js文档中
function toArray()
        {
            var arr=new Array(this.length);
            for(var i=0;i<this.length;i++)
            {
                arr[i]=this.charAt(i);
            }
            return arr;
        }
//html中
       String.prototype.toArray=toArray;
        var s="ahcvb".toArray();
        alert(s);

练习②:将字符串反转

//js文档:
function reverse()
        {
           var arr=this.toArray();
           var len=arr.length;


          for(var i=0;i<len/2;i++)
          {
           var temp;
           var p=len-(i+1);//和i调换的元素
           temp=arr[i];
           arr[i]=arr[p];
           arr[p]=temp;
         }
     return arr.join("");
    }
//html:
       String.prototype.reverse=reverse;
        alert("01234".reverse());
//Array的jion方法:将数组转换为字符串,元素由指定的分割符隔开,因为要输出字符串,即数组元素之间没有空格,所以用""隔开即可。

在JavaScript中允许函数内也有函数,js中函数就是一个封装体。

posted @ 2017-08-03 19:06  测试开发分享站  阅读(149)  评论(0编辑  收藏  举报