JavaScriptのArray.prototypeコンストラクタとは?配列に独自メソッドを追加する方法
JavaScriptのArray.prototypeコンストラクタは、配列オブジェクトに新しいメソッドやプロパティを追加するための仕組みです。ここで追加したメソッドやプロパティは、その後作成されるすべての配列から利用できるようになります。
Array.prototypeの基本的な仕組み
JavaScriptでは、すべての配列インスタンスはArray.prototypeを継承しています。そのため、このプロトタイプに独自のメソッドを定義すると、組み込みのmap()やfilter()と同じように、任意の配列から直接呼び出すことが可能になります。
次の例では、配列の偶数番目の要素を大文字へ、奇数番目の要素を小文字へ変換するカスタムメソッド「upperLower」を追加しています。
サンプルコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.sample {
font-size: 20px;
font-weight: 500;
}
</style>
</head>
<body>
<h1>JavaScript Array プロトタイプコンストラクタ</h1>
<div class="sample"></div>
<button class="Btn">クリック</button>
<h3>
上のボタンをクリックすると、配列の各文字が大文字・小文字に交互に変換されて表示されます
</h3>
<script>
Array.prototype.upperLower = function () {
for (let i = 0; i < this.length; i++) {
if (i % 2 == 0) this[i] = this[i].toUpperCase();
else this[i] = this[i].toLowerCase();
}
};
let fillEle = document.querySelector(".sample");
let arr = ["H", "E", "L", "L", "O"];
fillEle.innerHTML = arr;
arr.upperLower();
document.querySelector(".Btn").addEventListener("click", () => {
fillEle.innerHTML = arr;
});
</script>
</body>
</html>
出力結果

ページの読み込み時にarr.upperLower()が実行され、配列の各要素が変換されます。ボタンをクリックすると、変換後の配列(H,e,L,l,O)が画面に表示されます。

利用時の注意点
Array.prototypeの拡張は非常に便利な一方で、既存のライブラリとの名前の衝突や、for...inループへの意図しない影響が発生する可能性があります。実務で使用する場合は、既存メソッドと重複しない名前を選ぶこと、またObject.defineProperty()を使って列挙不可(enumerable: false)として定義することが推奨されます。
-
JavaScriptのArray.prototype.sort()メソッドの使い方をサンプルコードで解説
Array.prototype.sort()は、JavaScriptで配列の要素を並べ替えるための組み込みメソッドです。アルファベット順・数値順といった並び方に加えて、昇順・降順も自由に指定でき、配列操作の中でも特に使用頻度の高いメソッドの一つです。 ただし重要なポイントとして、sort()メソッドはデフォルトではすべての要素を文字列に変換してから比較します。そのため、数値の配列を意図したとおりに並べ替えたい場合は、比較関数を引数として渡す必要があります。 以下は、Array.prototype.sort()メソッドの基本的な使い方を示すサンプルコードです。 サンプルコード <!DOC
-
JavaScriptのArray.prototype.flat()メソッドとは?配列を指定した深さで平坦化する方法
Array.prototype.flat()メソッドとはJavaScriptのArray.prototype.flat()メソッドは、ネストされた配列を指定した深さまで再帰的に平坦化(フラット化)するためのメソッドです。元の配列を変更することはなく、平坦化された新しい配列を作成して返します。引数には平坦化の深さ(depth)を数値で指定します。省略した場合はデフォルトで「1」が適用され、「Infinity」を指定すればすべての階層のネストを完全に展開することも可能です。コード例以下は、Array.prototype.flat()メソッドを使用したサンプルコードです。<!DOCTYPE h