자바스크립트 모듈 패턴
Sidenote: ES6 introduced a new feature in JS called 'modules', they're essentially a syntax for importing and exporting code between JavaScript files. They're powerful and bring a new horizon for JS development but it's not the subject today.
오늘 우리는 IIFE 또는 즉시 호출된 함수 표현식에 대해 이야기할 것입니다. 바닐라 JS와 함께 작업하면 이러한 함수를 코드에서 더 나은 범위와 책임 정의에 사용할 수 있습니다.
IIFE 란 무엇입니까?
이것은 JavaScript 패턴으로, 우리의 기능에 대해 더 많은 어휘 범위를 가진 모듈을 생성하고, 간단한 작업을 실행하기 위한 함수를 생성하고, 즉시 실행하고 코드 구성을 도울 수 있습니다.
모듈 만들기
익명 클로저를 사용하여 초기화할 것입니다. 따라서 어휘 범위를 만들고 범위 안에 있는 코드는 속성을 포함하여 함수에서만 액세스할 수 있습니다.
(function() {
// Your functions and variables will be scoped in this function
// In this case our console.log will be executed immediately
console.log("My first module");
})();
모듈 내보내기
이를 통해 모듈에서 반환된 속성과 함수만 사용할 수 있으므로 코드 범위를 모듈에서 유지할 수 있습니다.
const moduleA = (function() {
const moduleAValue = "Module A";
function modifyModuleAValue() {
return `${this.moduleAValue}-123`;
}
return {
getter: () => {
return moduleAValue;
},
modifyModuleAValue,
}
})
IIFE를 사용하여 간단한 스크립트 만들기
이 패턴을 사용하면 즉각적인 실행을 위한 간단한 스크립트를 만들 수 있습니다. 좋은 예는 개발 프로세스에 더 많은 민첩성을 추가하기 위해 로그인 스크립트를 사용하는 것입니다.
(() => {
const user = "[email protected]";
const pass = "secretpass123";
document.getElementById("user-input").value = user;
document.getElementById("user-pass").value = pass;
document.getElementById("submit").click();
})();
이 간단한 스크립트를 사용하여 자동화된 로그인을 만들 수 있습니다.
ES6+의 IIFE
ES6이 출시되었을 때 몇 가지 새로운 기능이 추가되었습니다. 그 중 하나는
const
및 let
입니다. 이 유형의 변수 선언은 블록 범위를 가지므로 curly braces
블록을 얻을 때 각각의 let
또는 14104 has16 scope.14104 has19 따라서 이 패턴이 항상 필요한 것은 아니지만 지식은 특정 상황에서 항상 도움이 됩니다.읽어주셔서 감사합니다. 도움이 되었기를 바랍니다.
유용한 링크
Learning JavaScript Design Patterns
MDN Web Docs - IIFE
Reference
이 문제에 관하여(자바스크립트 모듈 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/guilhermegules/javascript-module-pattern-556i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)