私は本からこの演習を取得しました(解決策なし):
String() コンストラクターが存在しなかったと想像してください。String() とできるだけ同じように動作するコンストラクター関数 MyString() を作成します。組み込みの文字列メソッドまたはプロパティを使用することは許可されておらず、String() が存在しないことに注意してください。このコードを使用して、コンストラクターをテストできます。
>>> var s = new MyString('hello'); >>> s.length;
それでも、解決策はありますが、要件に従っているかどうかはわかりません(つまり、「組み込みの文字列メソッドまたはプロパティを使用することは許可されていません」)。そして、ここに私の解決策があります:
function MyString(string) {
this.length = 0;
for(var i in string) {
this.length++;
}
}
var x = new MyString("Hello");
x.length;
よくわからないのは for-in ループです。そのループ内の文字列変数のデータ型を教えてください。そのような配列ですか、それとも文字列として使用していますか (つまり、要件を破っています)? どうもありがとう!