본문 바로가기
개발/script

[script] 객체 리터럴 문법

by 밤즈라라2 2025. 1. 12.
728x90
반응형

 

{ processPayment: (amount) => processor.process(amount) }는 하나의 객체를 만드는 것입니다.

 


더 쉽게 이해하기 위해 분해해보면:
// 이렇게 쓴 것과

{ processPayment: (amount) => processor.process(amount) }



// 이렇게 쓴 것은 같아요

   {
    processPayment: function(amount) {
        return processor.process(amount)
    }
}


실제 예시로 보면:

     
    // 객체를 만들어서 변수에 저장
const myObject = {
    name: "John",           // 일반적인 속성
    sayHello: () => "Hi!"   // 함수를 값으로 가지는 속성
};

// 사용할 때는
console.log(myObject.name);      // "John" 출력
console.log(myObject.sayHello()) // "Hi!" 출력


const
creditCardService = createPaymentService(creditCardProcessor);
// creditCardService는 이런 객체가 됩니다:
// {
//     processPayment: function(amount) {
//         return creditCardProcessor.process(amount)
//     }
// }

// 그래서 이렇게 사용할 수 있어요:
creditCardService.processPayment(50000);


즉, processPayment는 객체의 메서드(함수)가 되는 것이고, 이 메서드는 전달받은 processor의 process 메서드를 호출하는 역할을 합니다.
processPayment는 이 객체의 "키(key)"가 되고, 화살표 함수 (amount) => processor.process(amount)는 그 키의 "값(value)"이 되는 거죠!


이중 함수(중첩 함수) 구조입니다.

이런 구조를 사용하는 이유는:

*클로저(Closure)를 만들어서 processor를 안전하게 보관
*내부 데이터를 캡슐화



728x90
반응형

'개발 > script' 카테고리의 다른 글

[script] 인터페이스란? 정말 쉽게 설명하기  (0) 2025.01.14
[script] 캡슐화  (0) 2025.01.13
[script] 전개구문 ...  (0) 2025.01.11
[script] 디자인패턴 기본기 정리 - SOLID 법칙  (0) 2025.01.10
null vs undefined 차이  (0) 2024.12.31