Development/Javascript

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

Dev. Jkun 2013. 1. 21. 09:23
반응형

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

자바스크립트가 있기에 퍼옴. 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  (외우세요)

반응형