본문 바로가기
Development/Javascript

[펌] 자바스크립트 정리. 2 - 자바스크립트 객체 (Object)

by Dev. Jkun 2013. 1. 21.
반응형

검색엔진을 뒤지면서 보다가 너무나 깔끔하게 정리된

자바스크립트가 있기에 퍼옴. GENERAL 님의 정리 감사합니다.

댓글은 아래 링크에 달아주시기 바랍니다. 저도 고맙게 생각하는지라.^^;;


링크 : http://blog.naver.com/minis24/80094251902


* 자바스크립트를 공부하면서 노트에 정리해 놓은 내용을 보기 편하고, 효율적으로 검색하기 위해

  블로그에 올리고 있습니다.

* 괜찮게 생각했던 내용과 메서드나,프로퍼티등의 인덱스가 있었으면 해서 정리한 거라서

   아주 기초적인 내용은 없을지도 모르겠네요. ^^ 

* 오늘은 자바스크립트 객체와 관련된 내용입니다.

 

자바스크립트 객체에 대하여 알아봅시다.

 

* 초기화 하는 방법 두가지

   1. 객체의 리터럴 (값)

        var empty = {};                                      // 빈객체

        var point = {x : 0 , y : 0};                        //point.x = 0 , point.y = 0

        var human = { "name" : "Homer",

                             "age" : 34 ,

                             "married" : true};

        

        // 프로퍼티는 식별자나 "문자열" 이 올수 있다.        

        // 객체의 리터럴은 자바스크립트 표현식으로서, 평가될때 마다 새로운 객체를

        // 생성하고 초기화 시킨다.

 

   2. new 연산자 이용  

       var a = new Array()            // 빈배열 생성

       var o = new Object()          // 빈객체 생성  

               // var o = {}     

     

* 프로퍼티의 삭제

   - delete 연산자 사용

      실제로 객체에서 프로퍼티를 완전히 제거한다.

 

* 연관 배열로서의 객체

   - 배열에서 사용되는 [] 연산자를 사용해도 객체의 프로퍼티에 접근 할 수 있다.

     즉 , object.property  와 object["property"] 는 같다.

   - 이런 형태로 객체를 사용할 때 연관배열이라고 한다.

   ※ [] 연산자안의 프로퍼티가 문자열 형태이기 때문에 런타임시에 동적으로 컨트롤 할 수 있다.

 

* 객체의 공통 메서드 및 프로퍼티

   - 모든 객체는 Object 클래스를 상속하며, 각자의 고유한 프로퍼티와 메서드가 있으며,

      Object 클래스에서 상속 받은 공통의 메서드와 프로퍼티가 있다.

     

      1. constructor 프로퍼티

           # 모든 객체는 생성자 함수를 가치키는 constructor 프로퍼티를 가지고 있다.

              ex ) Date() 생성자로 생성된 d 객체는 d.constructor 프로퍼티가 있다.

                  d.constructor 은 Date 를 가리킨다.

            

                  var d = new Date() ;

                  d.constructor == Date ;                     // true

 

           # instanceof  연산자는 constructor 프로퍼티 값을 사용한다.

                 d.constructor == Date ;                     //true

                 d instanceof Date ;                           //true

 

       2. valueOf() 메서드

            # 자바스크립트가 객체를 문자열이 아니라 숫자 같은 다른 기본타입으로 변환하려 할때

               호출된다.

            # Object 클래스가 기본제공하는 valueOf() 는 이런 변환을 수행하지 않는다.

               각 객체의 클래스에서 오버라이드 하여 사용한다.

            # 몇몇 내장 객체는 자신만의 valueOf()메서드를 정의하고 있다.

               ex) Date.valueOf();

      

        3. toString() 메서드  

          # 메서드를 호출한 객체의 값을 어떠한 방식으로든 표현하는 문자열을 만들어 리턴한다.

            # 기본 제공하는 toString() 메서드는 "[Object object]"

      

      4.hasOwnProperty() 메서드

          # 프로퍼티의 이름을 담는 한개의 문자열 인자를 받는다 객체가 이 프로퍼티를 소유하고

               있는지 검사

            ※ 프로퍼티가 지역적으로 정의되어있으면 true 리턴

            ※ 상속받은 프로퍼티 이거나, 존재하지 않으면 false 리턴         

             

             var o = {} ;

             o.hasOwnProperty("undef");                   // false(존재하지 않는 프로퍼티)

             o.hasOwnProperty("toString");                // false(상속 받은 프로퍼티)

             Math.hasOwnProperty("cos");                // true

 

       5. isPrototypeOf() 메서드

            # 이 메서드의 객체가 전달인자로 주어진 객체의 프로토 타입 객체이면 true 리턴

              그렇지 않으면 false 리턴

 

         var o = {} ;

           Object.prototype.isPrototypeOf(o)             // true

             // o.constructor == Object ;  이값이 true 이고,

             // o의 클래스는 Object 이다  new Object() == {}

       

         Function.prototype.isPrototypeOf(Object)         //true

          // Object.prototype == Function  (외우세요)

반응형

댓글