javascript

49. 생성자 함수

life... 2022. 4. 12. 18:04

new키워드를 사용하게 되면

return문이 없어도 새로운 객체가 반환된다.

 

객체를 생성하는 역할을 하는 함수를 생성자 함수라고 한다.

 

생성자 함수는 new키워드를 사용하지 않으면 일반함수와 동일하게 동작하고

새로운 객체를 반환하지 않는다.

 

function Teacher(name, age, subject) {
  this.name = name;
  this.age = age;
  this.subject = subject;
  this.teach = function (student) {
    console.log(student + '에게 ' + this.subject + '를 가르칩니다.');
  };
}

const jay = new Teacher('jay', 30, 'JavaScript'); // new로 생성된 객체(jay)은 해당 타입 즉 Teacher의  인스턴스이다.
console.log(jay);
jay.teach('bbo');

console.log(jay.constructor); // jay의 constructor 인 맨위의 생성자에대한 데이터를 가져온다. 

                                    //function Teacher(name, age, subject) {

console.log(jay instanceof Teacher); //jay가 Teacher생성자의 인스턴스인가 => true

const jay2 = Teacher('jay', 30, 'JavaScript'); //new 를 사용하지 않아서
console.log(jay2);//-> jay2가 생성이 되지만 새로운 객체가 반환이 되지 않아서 undefined가 출력된다.
console.log(age); //그러나 전역변수에 30이 들어가서 30이 출력이 된다.

'javascript' 카테고리의 다른 글

157. iframe 조작하기  (0) 2022.04.25
154. 브라우저 history  (0) 2022.04.25
54.this이해  (0) 2022.04.13
53. 클래스 정적 메소드와 속성  (0) 2022.04.13
3. day7  (0) 2022.03.05