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

本文介绍了一种自定义MyString类的方法,该类模仿了JavaScript中String对象的行为,实现了长度获取、字符读取、字符串拼接等功能。通过具体实例展示了如何使用这个自定义类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

var s = new MyString(“hello”);
s.length;  //5
s[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'

 

转载于:https://www.cnblogs.com/wpc1403s2/p/6070099.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值