21.04.08 TIL CommonJS

J·2021년 4월 8일
0

require -> 해당 파일의 모든 exports 객체의 키 값을 가져온다

let exports = module.exports = {} 의 느낌이어서
exports가 module.exports의 shortcut이 가능한 것

하지만 exports는 module.exports를 참조하기 때문에
객체같은 참조형 자료는 복사하지 못하고
원시형 자료는 가져올 수 있다.

let obj = {}
let obj2 = obj
console.log(obj === obj2) -> true(같은 주소값을 바라본다)

console.log({} === {}) -> false(다른 주소값)

socrative 3번의 경우, require가 두 번 실행됐지만 그렇다고 두 번 참조하는 것이 아님(require.cache개념)
4번과도 연동됨 -> counter === 1 -> counter === 2

cache를 다 참조는 하지만, cache에 같은 내용이 있다면 중복해서 가져오지 않는다(한 번만 가져온다)

0개의 댓글