小ネタです。
JavaScriptのグローバルオブジェクトには様々なメソッドが最初から用意されています。例えば文字列を扱うStringには、検索置換するreplace()
や一部を取り出すslice()
などです。ここに自分で用意したオレオレなメソッドを追加することができます。
結論から言うとprototypeで宣言するだけ。以下の例では文字列中のホワイトスペースをすべて削除する、連続するスペースを1つにまとめてくれるメソッドを追加しています。
/**
* めっちゃtrimするメソッド
*/
String.prototype.trim2 = function(){
return(
this
.trim() // 両端のスペースを削除
.replace(/\r|\n|\t/g, "") // 改行とタブを削除
.replace(/\s{2,}/, " ") // 複数のスペースを1つにまとめる
);
}
実際に文字列の後ろにチェーンして利用できるようになります。
" foo bar ".trim2() // "foo bar"
なお、利用する箇所よりも前にprototypeで定義しないとエラーとなるのでご注意を。またアロー関数式だとthis
の意味が変わってくるのでご注意ください。