【JavaScript ECMAScript】Symbol::Symbol.matchAll静的データプロパティの使い方
Symbol.matchAll静的データプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Symbol.matchAllプロパティは、正規表現のマッチングに関連する内部的な動作を定義するために使用される特別なシンボルを保持するプロパティです。JavaScriptにおけるシンボルは、オブジェクトのプロパティキーとして使用される、他と衝突しないユニークな値を生成するためのデータ型です。このSymbol.matchAllも特別なシンボルの一つであり、特定の組み込みメソッドの動作をカスタマイズする目的で利用されます。
具体的には、String.prototype.matchAll()メソッドが、引数として渡されたオブジェクトを正規表現としてどのように扱うかを決定する際に、このSymbol.matchAllプロパティが存在するかどうかを確認します。もし引数のオブジェクトにSymbol.matchAllプロパティが定義されていれば、そのプロパティに割り当てられた関数が呼び出され、正規表現のマッチング処理が実行されます。この関数は、文字列内で見つかった全てのマッチ結果を、繰り返し処理可能なイテレーターとして返します。
通常、開発者がこのSymbol.matchAllプロパティを直接操作することは稀ですが、高度なプログラミングにおいて、独自のカスタムオブジェクトを正規表現のように振る舞わせたい場合に、このプロパティを利用してその振る舞いを定義することが可能です。これにより、JavaScriptの文字列検索機能を柔軟に拡張し、カスタムオブジェクトに対しても一貫した方法でマッチング処理を適用できる基盤を提供しています。
公式リファレンス: Symbol.matchAll
構文(syntax)
1class CustomMatchableObject { 2 constructor(regexPattern) { 3 this.regex = new RegExp(regexPattern, 'g'); 4 } 5 6 [Symbol.matchAll](str) { 7 return str.matchAll(this.regex); 8 } 9}
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません