객체 지향 프로그래밍 언어는 개인 필드를 사용하여 데이터를 숨길 수 있습니다. 그들은 이것을 사용하여 클래스의 내부를 숨깁니다. JS에는 내부 작업을 숨기거나 캡슐화하는 빌드 지원이 없습니다.
JS에서 캡슐화를 제공할 수 있는 익명 기능이 있습니다. 예를 살펴보겠습니다 -
예시
const HIDDEN_CONST = 100; function fnWeWantToHide(x, y) { return (x + y) * HIDDEN_CONST } console.log(fnWeWantToHide(1, 2))
위의 코드를 공개적으로 작성하면 이 코드는 이러한 이름으로 전역 네임스페이스를 오염시킬 것입니다. 대신 우리가 할 수 있는 것은 이것을 IIFE(즉시 호출된 기능 표현식)로 래핑하는 것입니다. 예를 들어,
예시
(() => { const HIDDEN_CONST = 100; function fnWeWantToHide(x, y) { return (x + y) * HIDDEN_CONST } console.log(fnWeWantToHide(1, 2)) })()
이제 이러한 변수는 기능 표현식 내에 숨겨져 있습니다. 그러나 function과 const는 더 이상 전역 네임스페이스를 오염시키지 않습니다.