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 |