ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 일반 함수와 생성자 함수의 차이점
    Programming/javascript 2022. 2. 10. 14:51

    생성자 함수와 일반 함수는 같은 함수이다.

    이게 무슨 뜻 이냐면, 선언적 차이 일 뿐 별 다른 차이가 존재하지 않는다는 뜻이다.

    첫째로, 생성자 함수의 코딩컨벤션(Coding Convention)은 객체와 같이 첫 글자가 대문자로 시작한다는 것이다. 이를 지키지 않을 경우 코드인스펙션(Code Inspection)을 통하여 정정하여야 하니 주의하자.

    둘째로, 생성자 함수를 호출 및 초기화 할 땐 new 연산자를 사용한다.

    ex)

    function Pet(name){
    	//
        this.name = name;
        this.alive = true;
    };
    let pet = new Pet("cozy");

    console.log(pet.name);//cozy;

    console.log(pet.alive);//true;

    위와 같이 new 연산자는 내장 객체 타입의 인스턴스 혹은 사용자 정의 객체 타입을 생성하는데, 빈 객체를 만들어 this에 할당하고 생성자 함수의 본문을 실행한 뒤 this에 새로운 속성을 추가해 값을 수정하고 반환 한다.

     

    이렇듯 new 연산자와 생성자 함수 재할당을 통하여 재사용이 용이하고, 내부에 파라미터를 통하여 구현되는 코드 컨벤션이 정의가 되어 있기 때문에 다른 컴포넌트와 같이 외부에서 호출되어 사용하는 경우 일종의 캡슐화(Encapsulation)을 통하여 함수 은닉을 통하여 수정과 오용을 방지 할 수 있다.

    팁으로 타입스크립트의 접근제어자까지 사용하면 자바의 캡슐화와 거의 동일한 수준으로 제어를 할 수 있다.

     

    이것이 일반 함수와 생성자 함수의 큰 차이점이고, 함수 선언 시 화살표 표현식(애로우 펑션 또는 람다식)을 사용한다면 생성자 함수로써의 사용이 불가하니 유의한다.

    'Programming > javascript' 카테고리의 다른 글

    Generator에 대하여  (0) 2022.04.24
    Closure에 대하여  (0) 2022.02.10
    Execution Context에 대하여  (0) 2022.02.10
    function과 arrow function의 차이점  (0) 2022.02.10
    var, let, const의 차이점  (0) 2022.02.10

    댓글

Designed by Kort.