[TIL] 생성자와 new

권기현·2020년 2월 22일
0

Java Script = prototype-based programming

=> 객체지향 언어가 가지고 있는 문법을 비슷하게 사용하면서 함수형 언어의 특성을 가지고 있다!

(두 언어에 대해서 깊게 알지는 못하지만 그렇다고 한다...)

객체?

객체란 서로 연관된 변수와 함수를 그룹핑한 그릇이라고 할 수 있다. 객체 내의 변수를 프로퍼티, 함수를 메소드라고 부른다.

이때 연관된 변수와 메소드는 독립성을 가지게 된다. 이는 여러 완제품의 부품으로 사용될 수 있다는 것이다.

즉, 우리는 좋은 부품, 로직을 만드는 것 이 우리의 목표!!!!!

생성자(constructor): 객체를 만드는 역할을 하는 함수

먼저,

function Person( ) {}

let p0 = Person( );

p0

=> undifined

p0 를 호출하면 당연히 위와 같이 undifined 가 뜬다..

하지만, 똑같은 코드에서 "new" 라는 키워드를 추가하게 되면,

function Person( ) {}

let p = new Person( );

p

=> Person { }

-> new를 함수 앞에 붙이게 되면 ( EX => new func) 이 맥락에서 함수는 생성자 라고 불리게 된다.

= 함수에 new를 붙이면 빈 객체(object)를 return 하게 된다.


-> 예시

  • Person 이라는 함수에 new를 붙이므로 Person은 생성자가 된다.

  • 'egoing'인자로 name에 전달하였고,이로 인해 p1이라는 객체의 name 이라는 프로퍼티의 값은 'egoing'이 된것이다.

  • introduce라는 프로퍼티에 function을 할당하여 p1이라는 객체는 introduce라는 method를 가지게 된다.

  • p1과 p2에 각 각 Person을 생성자로 사용하여 객체로 만들었는데, 이를 통해 introduce라는 메소드를 단 한번만 정의할 수 있게 된다.

  • 이렇게 생성자 함수 안에 새롭게 생성될 객체의 프로퍼티와 메소드를 기술하여 코드의 재사용성과 중복의 제거라는 효과를 얻을 수 있다.

profile
함께 일하고 싶은 개발자를 목표로 매일을 노력하고, 옷을 좋아하는 권기현 입니다.

0개의 댓글