ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체, Prototype
    Technique/Javascript 2016. 11. 20. 22:16
    반응형

    객체


    javascript에서의 객체란 연상배열의 일환이라고 볼 수있다.

    객체는 성질 ( Property ) 와 기능 ( Method )로 이루어져 있다.

    성질은 : 데이터를 담는 그릇

    기능은 : 데이터를 조작하기 위한 기능

    이라 할 수 있다.


    -

    기본적으로 제공하고 있는 내장 객체 ( Built-in Object ) 와 사용자 정의 객체 ( Custom Object ) 가존재한다.

    내장형 객체의 경우 특별한 선언이나 정의를 하지 않고 바로 이용할 수 있는 점이 장점이다.


    -

    Prototype 

    자바스크립트에서의 프로토타입은 매우 중요한 개념중 하나이다.

    프로토타입은 내가 누구의 자손인가를 명시하는 것이다. 


    자바스크립트의 모든 객체는 자신을 생성한 객체 원형에 대한 숨겨진 연결을 갖는다. 이때 자기 자신을 생성하기 위해 사용된 객체원형을 프로토타입이란 한다. 자바스크립트의 모든 객체는 Object 객체의 프로토타입을 기반으로 확장 되었기때문에 이 연결의 끝은 Object 객체의 프로토타입 Object 다.


    아래의 예를 한번 보자

    1
    2
    3
    function A() {};
    var A = new A();
    console.log(A);
    cs



    위 내용에서 주의깊게 봐야할 것이 있다. 바로 __proto__constructor 이다. __proto__ 바로 이 녀석이 A라는 객체를 만들어내기 위해 사용된 객체원형에 대한 숨겨진 연결이다. 해당객체의 프로토타입은 A라는 함수객체이며 이 객체의 생성자 역시 function A() 함수라는 것이다. 즉 new Operator를 통해 만들어진 객체는 function A() 를 자신의 프로토타입으로 사용하여 만들어졌다는 말이다.


    하지만 역시 먼가 꺼림직하다 "내가 알고있는 프로토타입은 저게 아닌데?" 라고 생각하고 있을 것이다. 그 이유는 바로 당신이 알고 있는 프로토타입은 자신을 만들어낸 객체원형을 의미하는 것이 아니기 때문이다. 대부분의 자바스크립트 기초가 부족한 사람들이 말하는 프로토타입은 애석하게도 prototype property다.


    그럼 Prototype - Property란 무엇인가


    모든 함수 객체의 Constructor는 prototype 이란 프로퍼티를 가지고 있다. 이 prototype 프로퍼티는 객체가 생성될 당시 만들어지는 객체 자신의 원형이될 prototype 객체를 가리킨다. 즉 자신을 만든 원형이 아닌 자신을 통해 만들어질 객체들이 원형으로 사용할 객체를 말한다. prototype object는 default로 empty Object 를 가리킨다.


    이 설명이 좀더 복잡하게 느껴 질 수도 있지만 잘 이해한다면 매우 쉬운말이 된다.


    즉 자바스크립트의 객체를 생성자를 통해 인스턴스화 할 경우, 자바스크립트는 스스로 본인의 클론을 하나더 만든다.

    이 클론의 역활은 이 인스턴스를 부모로 생성될 자손들이 참조하게되는 역활을 담당하게 된다.

    이 속성을 Prototype - Property 라고 한다.



    반응형

    'Technique > Javascript' 카테고리의 다른 글

    DOM 과 이벤트 처리  (0) 2016.12.30
    Scope ( 스코프 )  (0) 2016.12.20
    jQuery keyPress Event에 대하여  (0) 2016.09.09
    클로져 기초  (0) 2016.06.20
    [ jQuery ] select box actions  (0) 2016.04.06

    댓글

Designed by Tistory.