JavaScript의 Array 프로토타입 생성자는 배열 객체에 새로운 메서드와 속성을 추가할 때 사용합니다. 프로토타입에 한 번 정의해 두면, 해당 메서드와 속성은 코드 전체에서 생성되는 모든 배열 객체에서 공통으로 사용할 수 있습니다.
배열 프로토타입의 동작 원리
JavaScript에서 모든 배열은 Array.prototype을 상속받습니다. 따라서 Array.prototype에 커스텀 함수를 추가하면, 별도의 유틸리티 함수를 만들지 않고도 마치 내장 메서드(push(), map() 등)처럼 자연스럽게 호출할 수 있습니다.
예제 코드
다음은 배열의 각 요소를 인덱스에 따라 번갈아가며 대문자와 소문자로 변환하는 커스텀 메서드 upperLower를 프로토타입에 추가한 예제입니다.
<!DOCTYPE html>
<html lang="en">
<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 prototype Constructor</h1>
<div class="sample"></div>
<button class="Btn">CLICK HERE</button>
<h3>
Click on the above button to convert the string to upper and lowercase
alternatively
</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>코드 설명
Array.prototype.upperLower: 배열 요소를 순회하면서 짝수 인덱스는toUpperCase()로 대문자 변환, 홀수 인덱스는toLowerCase()로 소문자 변환하는 커스텀 메서드입니다.this키워드 : 프로토타입 메서드 내부에서this는 해당 메서드를 호출한 배열 객체 자신을 가리킵니다.- 버튼 클릭 시
upperLower()가 적용된 결과가 화면에 출력됩니다.
실행 결과
페이지를 처음 열면 다음과 같이 원본 배열이 그대로 표시됩니다.

“CLICK HERE” 버튼을 클릭하면 프로토타입에 추가된 커스텀 배열 함수가 호출되어, 각 문자가 대소문자로 번갈아 변환된 결과를 확인할 수 있습니다.

정리
이처럼 Array.prototype을 활용하면 기존 배열 객체를 확장하여 재사용 가능한 커스텀 메서드를 손쉽게 만들 수 있습니다. 다만 실무에서는 내장 프로토타입 변경이 라이브러리 충돌이나 유지보수 문제를 일으킬 수 있으므로, 필요한 경우 신중하게 사용하는 것이 좋습니다.