Core JavaScript 1.5 Reference:Global Objects:String:prototype
出典: MDC
目次 |
[編集] 概要
String プロトタイプオブジェクトを表します。
[編集] 説明
String インスタンスの全ては、String.prototype を継承します。String プロトタイプオブジェクトへの変更は、String インスタンスの全てに伝播します。
[編集] プロパティ
- constructor
- オブジェクトのプロトタイプを生成する関数を指定します。
- length
- 文字列の長さを返します。
- N
- 非標準
- N 番目の文字にアクセスするために用いられます。N は、0 から length - 1 までの正の整数です。このプロパティは読み込み専用です。
[編集] メソッド
[編集] HTML に関連しないメソッド
- charAt
- 指定された添え字の文字を返します。
- charCodeAt
- 与えられた添え字の文字の Unicode の値を示す数を返します。
- concat
- 2 つの文字列のテキストをつなげて、新しい文字列を返します。
- indexOf
- 呼び出す
Stringオブジェクト 中で、指定された値が最初に現れる添え字を返します。指定された値が見つからない場合は、-1 を返します。
- lastIndexOf
- 呼び出す
Stringオブジェクト 中で、指定された値が最後に現れる添え字を返します。指定された値が見つからない場合は、-1 を返します。
- localeCompare
- 参照文字列が、並べ替え順において、与えられた文字列の前後にあるか、あるいは、同じかどうかを示します。
- match
- 文字列に対する正規表現のマッチのために使用されます。
- quote
- 非標準
- 文字列をダブルクォート ("
"")で囲みます。
- replace
- 正規表現と文字列の間のマッチを見つけ、マッチした部分文字列を新しい部分文字列に置き換えるために使用されます。
- search
- 正規表現と指定された文字列の間のマッチのための検索を実行します。
- slice
- 文字列の一部分を取り出し、新しい文字列を返します。
- split
- 文字列を複数の部分文字列に区切ることによって、String オブジェクトを文字列の配列に分割します。
- substr
- 文字列において、指定された位置から指定された文字数の文字を返します。
- substring
- 文字列において、文字列内の 2 つの添え字の間にある文字を返します。
- toLocaleLowerCase
- 文字列内の文字を現在のロケールでの小文字に変換します。ほとんどの言語で、このメソッドは、toLowerCase と同じ結果を返します。
- toLocaleUpperCase
- 文字列内の文字を現在のロケールでの大文字に変換します。ほとんどの言語で、このメソッドは、toUpperCase と同じ結果を返します。
- toLowerCase
- 小文字に変換された文字列の値を呼び出して返します。
- toSource
- 非標準
- 指定されたオブジェクトを表すオブジェクトリテラルを返します。この値を新しいオブジェクトを生成するために使用することができます。Object.toSource メソッドを上書きします。
- toString
- 指定されたオブジェクトの文字列を返します。Object.toString メソッドを上書きします。
- toUpperCase
- 大文字に変換された文字列の値を呼び出して返します。
- valueOf
- 指定されたオブジェクトのプリミティブ値を返します。Object.valueOf メソッドを上書きします。
[編集] HTML ラッパーメソッド
非標準
以下のメソッドは、それぞれ、特定の HTML タグで囲まれた (wrapped) 文字列のコピーを返します。
- anchor
-
<a name="name">(ハイパーテキストターゲット)
- blink
-
<blink>
- fontcolor
-
<font color="color">
- fontsize
-
<font size="size">
- link
-
<a href="url">(URL へのリンク)
これらのメソッドは、使用に制限があるメソッドで、利用可能なHTML タグと属性のサブセットのみを提供します。
Object.prototype から継承されるメソッド
__defineGetter__, __defineSetter__, hasOwnProperty, isPrototypeOf, __lookupGetter__, __lookupSetter__, __noSuchMethod__, propertyIsEnumerable, unwatch, watch
[編集] 例
[編集] 例:repeat メソッドを持つように文字列のインスタンスを拡張する
以下の例は、 str_rep というメソッドを生成し、String.prototype.repeat = str_rep という文を用いて、String オブジェクトの全てにそのメソッドを追加しています。String インスタンスの全てが、既に生成されていたとしても、そのメソッドを持つようになります。例では次に、その代わりとなるメソッドをを生成し、s1.repeat = fake_rep という文を用いて、String オブジェクトの一つで以前のメソッドを上書きしています。String オブジェクトに残っている str_rep メソッドは、置き換えられていません。
var s1 = new String("a");
var s2 = new String("b");
var s3 = new String("c");
// String オブジェクトの全てに対して「文字列を N 回繰り返す」メソッドを
// 生成します
function str_rep(n) {
var s = "", t = this.toString();
while (--n >= 0) {
s += t
}
return s;
}
String.prototype.repeat = str_rep;
s1a=s1.repeat(3); // "aaa" を返します。
s2a=s2.repeat(5); // "bbbbb" を返します。
s3a=s3.repeat(2); // "cc" を返します。
// String 変数の一つだけに代入する代替メソッドを生成します。
function fake_rep(n) {
return "repeat " + this + " " + n + " times.";
}
s1.rep = fake_rep
s1b=s1.repeat(1); // "repeat a 1 times." を返します。
s2b=s2.repeat(4); // "bbbb" を返します。
s3b=s3.repeat(6); // "cccccc" を返します。
この例での関数は、String コンストラクタで生成されていない String オブジェクトでも動作します。次のコードは、"zzz" を返します。
"z".repeat(3);