본문 바로가기

Javascript

배열과 객체

이번엔 배열관 객체를 복습하자. 기본적인 선언이라 보면 되겠다. 객체는 조금 특이하지만, 이용법만 알면 편하다.

<script>

        // 배열 : 인덱스를 이용한 접근이 가능하다.

        var array = ['사과', '바나나', '망고', '딸기'];

        alert(array[1]);


        // 객체 : 키를 이용한 접근이 가능하다.

        var product = {

            // 키에는 ''을 안붙여도 되지만, 언제 어떻게 바뀔지 모르니, 난 붙이겠다.

            '제품명' : '건조망고',

            '유형' : '당절임',

            '성분' : '망고, 설탕, 메타중아황산나트륨, 치자횡색소',

            '원산지' : '필리핀'

        };

        alert(product.성분);

        alert(product['성분']);

</script>



객체안에 함수를 만들어 넣을 수 있다. 이 경우에 함수대신 메서드라 부른다. 기억할 것은 객체 안에 자신이 가지고 있는 속성을 사용하고 싶을 때, this를 붙여서 사용한다. 다른 언어에서 처럼 생략이 불가능하니 꼭 기억하자.

<script>

        var person = {

            name: '홍길',

            eat: function (food) {

                alert(this.name + '이 ' + food + '을/를 먹습니다.');

            }

        };


        person.eat('밥');

</script>



객체의 반복문을 사용할 경우 for문을 이용해서 인덱스로 접근하는 방법은 사용할 수 없다. 하지만 for in 반복문을 이용해 접근이 가능하다.

    <script>

        var product = {

            // 키에는 ''을 안붙여도 되지만, 언제 어떻게 바뀔지 모르니, 난 붙이겠다.

            '제품명': '건조망고',

            '유형': '당절임',

            '성분': '망고, 설탕, 메타중아황산나트륨, 치자횡색소',

            '원산지': '필리핀'

        };


        var output = "";

        for (var key in product) {

            output += '-- ' + key + ': ' + product[key] + '\n';

        }

        alert(output);

    </script>



이번에는 in 키워드를 알아보자. in은 객체 안에 속성이 존재하는지 확인할 수 있다.

    <script>

        var product = {

            // 키에는 ''을 안붙여도 되지만, 언제 어떻게 바뀔지 모르니, 난 붙이겠다.

            '제품명': '건조망고',

            '유형': '당절임',

            '성분': '망고, 설탕, 메타중아황산나트륨, 치자횡색소',

            '원산지': '필리핀'

        };


        var output = "";

        output += "'유형' is pruduct :" + ('유형' in product) + '\n';

        output += "'원산지' is pruduct :" + ('원산지' in product); +'\n';

        output += "'재료' is pruduct :" + ('재료' in product);


        alert(output);

    </script>



그리고 with 키워드는 참조할 객체를 가리켜서 코딩을 좀 더 단순하게 해준다.

    <script>

        var product = {

            '제품명': '건조망고',

            '유형': '당절임',

            '성분': '망고, 설탕, 메타중아황산나트륨, 치자횡색소',

            '원산지': '필리핀'

        };


        var output = "";

        with (product) {

            output += "'유형' pruduct :" + 유형 + '\n';

            output += "'원산지' pruduct :" + 원산지 +'\n';

            output += "'성분' pruduct :" + 성분;

        }


        // 같은 동작

        //output += "'유형' pruduct :" + product.유형 + '\n';

        //output += "'원산지' pruduct :" + product.원산지 + '\n';

        //output += "'성분' pruduct :" + product.성분;


        alert(output);

    </script>



객체의 생성과 제거

    <script>

        //선언

        var student = {};

        student.name = '홍길동';

        student.hobby = '악기';


        // toString 메서드 생성

        student.toString = function () {

            output = '';

            for (var key in this) {

                if (key != 'toString') {

                    output += key + ":" + this[key] + "\n";

                }

            }

            return output;

        }


        alert(student.toString());

        delete (student.hobby); // hobby 삭제

        alert(student.toString());

    </script>


'Javascript' 카테고리의 다른 글

ECMAScript 5 추가 속성  (0) 2012.07.05
상속  (0) 2012.07.05
form 값을 새창으로 전송하기  (0) 2012.06.27
자바 스크립트 내장함수  (0) 2012.06.15
가변인자 함수  (0) 2012.06.07