동적으로 모듈 가져오기
동적으로 모듈 가져오기
모듈 경로로는 문자열만 가능하기 때문에 함수에 매개변수를 넘겨 줘서 결과값을 갖는 것은 할 수 없다. 또한, 런타임이나 조건부로 모듈을 불러올 수 없다.
그럼에도 불구하고 모듈을 동적으로 불러와야 한다면 어떻게 해야 할까?
import() 표현식
import(module) 표현식은 모듈을 읽고 이 모듈이 내보내는 것들을 모두 포함하는 객체를 담은 이행된 프로미스를 반환한다.
| 1 | let modulePath = prompt("어떤 모듈을 불러오고 싶으세요?"); | 
| 1 | // say.js | 
let module = await import(modulePath) 와 같이 가져올 수 도 있음.
| 1 | let { hi, bye } = await import(modulePath); | 
say.js 에 export default 추가
| 1 | // say.js | 
export defaul로 내보냈으면 default 프로퍼티를 사용하여 가져올수 있다.
| 1 | let obj = await import("./say.js"); | 
import()는 함수가 아니다.super()처럼 괄호를 쓰는 특별한 문법이다.