객체 생성자 함수

hyerin·2023년 3월 21일
0

객체는 그냥 복사를 하면 식별자만 더 생길 뿐 새로운 객체를 만들 수 없다.
객체의 참조 특성 때문에 얕은 복사가 되기 때문이다. 객체를 복사하고 싶다면, 또는 비슷한 프로퍼티를 가진 객체들을 만들고 싶다면 생성자 함수를 사용하면 된다.

생성자 함수는 일반 함수와 구별되는 차이점이 있다.

  1. 기명함수이다. 보통 이름의 첫글자를 대문자로 쓴다.
  2. this를 사용한다.
  3. 파라미터가 필수는 아니나, 인스턴스마다 새로운 값을 대입시키고 싶다면 넣을 수 있다.

this를 사용하는 이유는 생성자 함수에서 this가 새롭게 생성되는 인스턴스를 가리키고,
그 인스턴스의 속성과 메소드에 접근할 수 있기 때문이다.
즉, 생성자 함수에서 새로운 프로퍼티나 메소드를 정의하고 싶다면, 앞에 꼭 'this'를 붙여야 한다. 그래야 해당 프로퍼티나 메소드가 생성된 인스턴스의 속성과 메소드에 잘 접근할 수 있다.
다음은 생성자 함수의 예시이다.

function Students(name, age){
this.name = name ;
this.age = age;
this.sayHi = function(){
console.log(`hello my name is ${this.name}`); }}

다음과 같이 인스턴스를 만들고 생성자 함수의 프로퍼티와 메소드를 사용할 수 있다.

const student1 = new Students('hana',14);
console.log(student1.age); 
student1.sayHi(); 
profile
글쓰기의 시작은 나를 위해, 끝은 읽는 당신을 위해

0개의 댓글