자바스크립트 생성자 함수 안에 this 없이 "내부 함수"를 작성하는 방법
권장하지 않는 방식이다.
다른 언어와이 차이점때문에 기록해둠.
--------------------------------------------------------------------------------------------------
function Cafe(menu) {
this.menu = menu;
function greet() {
console.log(`어서오세요, ${menu} 준비중입니다.`);
}
greet(); // 생성자 실행할 때 인사
}
const cafe1 = new Cafe('아메리카노');
// cafe1.greet(); // ❌ 오류! (cafe1에 greet() 메서드가 없음)
--------------------------------------------------------------------------------------------------
function Cafe(menu) {
this.menu = menu;
this.greet = function() {
console.log(`어서오세요, ${this.menu} 준비중입니다.`);
};
}
const cafe1 = new Cafe('아메리카노');
cafe1.greet(); // ✅ 어서오세요, 아메리카노 준비중입니다.
--------------------------------------------------------------------------------------------------
핵심 요약
this 없이 함수 작성 | 생성자 함수 안에서만 사용 가능. 객체에는 저장 안 됨. |
this로 메서드 작성 | 생성된 객체가 직접 메서드를 가지고 있어서 언제든 호출 가능. |
권장 방법 | 객체에 붙일 메서드는 반드시 this를 써서 작성하자. |