亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

javascript面向對象編程指南:讀書筆記-第四章習題

標簽:
JavaScript

4题:在String()构造函数不存在的情况下自定义一个MyString()的构造器函数。记住,由于String()不存在,因此您在写构造器函数时不能使用任何属于内建String对象的方法和属性。并且要让您所创建的对象通过以下测试:
var s = new MyString("hello"); s.length; //5 s[0]; //"h" s.toString(); //"hello" s.valueOf(); //"hello" s.charAt(1); //"e" s.charAt("2"); //"l" s.charAt("e"); //"h" s.concat(" world!"); //"hello world!" s.slice(1,3); //"el" s.slice(0,-1); //"hell" s.split("e"); //["h","llo"] s.split("l"); //["he","","o"]
测试都通过了。代码如下:


function MyString(val){
        var list = [],i;
        for(i in val){
            list[i] = val[i];   
        }
        this.length = list.length;
        this.toString=function(){
            return list.join('');   
        };
        this.valueOf=function(){
            return list.join('');   
        };
        this.charAt=function(index){
            return list[isNaN(parseInt(index))?0:(parseInt(index))];
        };
        this.concat=function(str){
            for(var i in str){
                list.push(str[i]);  
            }
            return list.join('');   
        };
        this.slice=function(n1,n2){
            var s1 = [];
            if(n2>n1){
                for(var i=n1;i<n2;i++){
                    s1[i-n1] = list[i]; 
                };
            }else if(n2 < 0){
                for(var i=n1;i<(list.length + n2);i++){
                    s1[i-n1] = list[i]; 
                };  
            }
            return s1.join(''); 
        };
        this.split = function(val){
            var slist = [],plist=[],j=0;
            for(var i in list){
                if(val != list[i]){
                    slist.push(list[i]);    
                }else{
                    plist.push(slist.join(''));
                    slist =[];  
                }   
            };
            plist.push(slist.join(''));
            return plist;   
        };
        this.reverse=function(){
            var alist =[];
            for(var i in list){
                alist[i] = list[list.length-1-i]    
            }
            return alist.join('');
        }
    };```
里面应该都是用的数组的方法,对toString 和 valueOf方法不太了解,我就只做了返回字符串。5题方法也在上面。
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 1
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消