모듈의 필요성
- 분할하는 방법을 제시한다 구조적으로 관리할수 있게 해줘서
독립저긴 기능들을 개발 하고 추합 할수 있게 도와줌- 코드의 재사용
- 은닉성 제공 / 복잡한 구현을 숨긴채 명료한 책임 을 가진 간단한 인터페이스만 노출시킨다.
모듈을 불러오는 기능인 require 의
var require = function(src){
if(require.cache[id]){
return require.cache[id].exports
> 캐시에 존재하면 return 한다.
}
var fileAsStr = readFile(src)
//파일을 읽어온다
var module.exports = {}
//모듈 외부데이터
eval(fileAsStr)
//
require.cache[id]= module
return module.exports
}
따라서
module.exports vs exports
는
moudule.exports 에 저장되어잇는 함수를 가져오라는 의미 이다.
이러한 개념을 토대로 하여
다른 파일에 존재하는 함수를 export 할려고 하면
module.exports= new class() 형식이나
module.exports= 함수
const {새로운 함수 = require(' 함수 경로 이름')
으로 뽑아 낼수 있다.