본문 바로가기
IT/JavaScript와 Framework

자바스크립트 생성자 함수 안에 this 없이 "내부 함수"를 작성하는 방법

by 골든크랩 2025. 4. 29.
728x90
반응형

권장하지 않는 방식이다.

다른 언어와이 차이점때문에 기록해둠.

--------------------------------------------------------------------------------------------------

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를 써서 작성하자.

 

 

 

 

728x90
반응형

댓글