본문 바로가기
제가 쓴 책/HTML5, CSS3 and JavaScript

6.3 배열(Array)의 속성(Property)

by edupicker(체르니) 2013. 8. 6.

6.3 배열(Array)의 속성(Property)


배열(Array) 객체는 다음과 같이 3개의 속성(Property)를 가지고 있으며 이를 통해 배열의 포함된 요소의 개수를 구하거나 새로운 속성 및 메서드를 추가하여 배열을 확장하여 사용할 수 있습니다.


속성

설명

constructor

배열을 생성하는 함수(function)을 나타냄

length

배열에 포함된 요소의 길이, 즉 요소 수를 의미함

prototype

배열에 속성(property)나 메서드(Method)를 추가하여 사용


메모장을 열어서 다음과 같이 코드를 작성합니다.

<!DOCTYPE HTML>
<html>
<head>
  <title>
배열 속성 예제</title>
  <script type="text/javascript">  
    var arrMovie = ["
건축학개론","도둑들", "토탈리콜"];

    document.write("arrMovie
배열의 constructor 속성 : " + arrMovie.constructor);
    document.write("<br />"+"arrMovie
배열의 요소수 : " + arrMovie.length);
  </script>
</head>

</html>

“arrayProperty.html”
으로 저장하고 IE9을 통해 보면 다음과 같이 Array constructor, length 속성을 나타냅니다.



결과로 봐서는 배열의 length 속성은 많이 쓸 것 같은데 constructor 속성은 어디에서 사용될까 생각될 수 있는데요. <script>…</script> 블록 부분을 다음과 같이 수정해봅니다.

    document.write("<br />"+"arrMovie
배열의 요소수 : " + arrMovie.length);

    var Movie2 = new Array("
다크 나이트 라이즈", "In good Company");
    if ( Movie2.constructor == Array)
      document.write("<br />"+ "Movie2
는 배열(Array)");

  </script>

위와 같이 작성하고 IE9를 이용해서 출력 결과를 확인하면 기존 결과 밑에 “Movie2는 배열(Array)”라고 나타납니다. 이와 같이 변수가 배열(Array)인지 아닌지 체크하고 이에 따른 후속 처리를 하고 싶을 때 constructor 속성을 사용할 수 있습니다.

다음으로 배열에서 prototype 속성에 대해서 설명하면 다음과 같은 형식으로 속성, 메서드를 추가하여 사용할 수 있습니다.


//속성 추가의 경우
array.prototype.
속성이름=속성값;

//
메서드 추가의 경우
array.prototype.
메서드이름=function() {
 
처리할 코드들;
}


이제 prototype 속성에 대한 예제를 하나 해볼까요? 이번 예제는 prototype 속성을 이용하여 메서드를 추가하는 방법을 소개합니다. 메모장을 열어서 다음과 같이 작성합니다.


<!DOCTYPE HTML>
<html>
<head>
  <title>
배열 속성 예제</title>
  <script type="text/javascript">  
    var arrMountains = new Array("
백두산", "한라산", "지리산", "설악산");   
    for(var item in arrMountains)
      document.write("arrMountains
의 데이터 : " + arrMountains[item] + "<br />");
   
    Array.prototype.ShowMe=function(){
      for(var idx=0; idx<this.length; idx++)
      document.write("arrMountains["+idx+"]
의 데이터 : " + arrMountains[idx]+"<br />");
     }

    arrMountains.ShowMe();    
  </script>
</head>

</html>

위에서 ShowMe 라는 메서드를 prototype 속성을 이용하여 추가한 후 ShowMe() 메서드를 호출하는 형태입니다. “arrayPropertywithprototype.html” 으로 저장하고 IE9를 이용하여 연결하면 다음과 같이 arrMountains 배열에 저장되어 있는 모든 아이템을 for문을 이용하여 출력한 후 ShowMe() 메서드를 호출한 결과를 출력합니다.






- 본 저작물은 본인이 2011년 상반기부터 2012년 여름 즈음까지 도서 출판을 목적으로 약 470 페이지(A4, 폰트 10)으로 작성한 원본 중 JavaScript에 대한 부분을 그대로를 공개하는 것으로 본 저작물에 대한 모든 권리는 본인(원철연)에서 있음을 알립니다.
개인적인 학습 목적으로 사용을 허용하며 온오프라인의 베포나 펌상업적인 용도의 사용은 삼가해주시기 바랍니다. 끝으로 학교나 비영리 단체에서의 경우 본 저작물을 비상업적인 용도로 활용하고자 할 경우 연락처를 비밀댓글로 남겨주시면 연락드리겠습니다.