在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'
原标题:在String()构造器不存在的情况下自定义一个MyString()函数,实现如下内建String()方法和属性:
关键词:string