程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> string-JS新建構造器實現內建String()的方法和屬性

string-JS新建構造器實現內建String()的方法和屬性

編輯:編程解疑
JS新建構造器實現內建String()的方法和屬性

在String()構造器不存在的情況下自定義一個MyString()函數,實現如下內建String()方法和屬性:

 var s = new MyString(“hello”);
s.length;  //5
s[0];  //"h"
s.toString();  //"hello"
s.charAt(1);  //"e"
s.charAt("e");  //"h"  (這個是怎麼來的???)
s.slice(0,-1);  //"hell"
s.split("e");  //["h","llo"]
s.reverse();  //"olleh"

 題目提示用把字符串當做數組用for循環遍歷,(但是用for循環不就會用到“.length”屬性了嗎?)請教大家,謝謝!

最佳回答:


這個和之前的MyArray是相同的思想,都是數據結構封裝。
之前我給你說[]不好實現,原來是我理解偏差,非要設計成函數構造器調用模式就陷入進去了。
剛才我想想,其實這個[]不是自己實現的,利用數組才能完成。
所以數組是核心,既然js中一切是對象,那麼數組也是,可以像函數一樣添加別的屬性和方法。
題目提示用把字符串當做數組用for循環遍歷,(但是用for循環不就會用到“.length”屬性了嗎?)
在js以及python等語言中有一個 輔助的for循環 是 for-in循環
可以用來便利一個可迭代的對象,比如字符串,數組,列表,元組等數據對象
所以便利一個字符串可以使用for-in
圖片說明
既然這樣你可以用它把一個字符串轉化成一個字符數組

var MyString = function(str){
... var list = [];
... for(var c in str){
..... list.push(c);
..... }
...
... list.toString = function(){
... var str = "";
... for(var p in list){
..... str = str+p;
..... }
... return str;
... }
...
... list.charAt = function(index){
... return list[index];
... }
return list;
... }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved