你的位置:首页 > Java教程

[Java教程]在String()构造器不存在的情况下自定义一个MyString()函数,实现如下内建String()方法和属性:


在String()构造器不存在的情况下自定义一个MyString()函数,实现如下内建String()方法和属性:

 

var s = new MyString(“hello”);s.length; //5s[0]; //"h"s.toString(); //"hello"s.charAt(1); //"e"s.charAt("0"); //"h"s.slice(0,-1); //"hell"s.split("e"); //["h","llo"]未实现s.reverse(); //"olleh"

var MyString=function(str) {  var list = [];  for (var i in str) {    list[i] = str[i];  }  this.list = list;  this.toString=toString;  this.valueOf=valueOf;  this.charAt=charAt;  this.concat=concat;  this.slice=slice;  this.split=split;  this.reverse=reverse;};function toString(){  var a_str='';  for(var i=0;i<this.list.length;i++)  {    a_str+=this.list[i];  }  return a_str;}function valueOf(){  return this.toString();}function charAt(n){  var c_str='';  c_str=this.list[n]  return c_str;}function concat(ch){  return this.toString()+ch;}function slice(m,n){  var s_str='';  if(n>0){    for(var i=m;i<n;i++){      s_str+=this.list[i];    }  }else if(n<0){    var len=this.list.length;    for(var i=m;i<n+len;i++){      s_str+=this.list[i];    }  }  return s_str;}function split(element){  for(var i=0;i<this.list.length;i++){    if( this.list[i]==element){      return i;    }  }  var slist=[];  slist=this.list.split(i,1);  return slist;}function reverse(){  var re_str=this.list.reverse();  return re_str.join('').toString();}var s=new MyString('hello');s.toString();    //'hello's.valueOf();    //'hello's.charAt(2);    //'l's.concat(' world'); //'hello word's.slice(1,3);    //'el's.slice(0,-1);   //'hell's.split('e');   //"h", "l", "l", "o"s.reverse();    //'olleh'