commonJS 에서 모듈 export 할때 보통은
const m = {
a: 1,
b: function () {
return 'b';
}
}
module.exports = m;
같은 형태를 취하지만 module 객체말고 exports 객체로도 모듈을 만들수 있다.
exports.odd = '홀수입니다';
exports.even = '짝수입니다';
module.exports 로 한번에 대입하는 대신 각각 exports 객체에 속성으로 던져줌.
동작은 동일함. module.exports 와 exports 가 같은 객체를 참조하기 때문에. ( module.exports === exports // true )
exports.anyFunc 에 특정 함수를 넣으면 module.exports에도 동일한 함수가 들어간다.
exports 객체 사용시에는 module.exports 와의 참조 관계가 깨지지 않아야 한다.
module.exports 에는 어떤 값이든 참조 가능하지만 exports 에는 반드시 속성으로 값을 부여해야 한다.
exports 에 다른 값을 대입하면 module.exports 와의 참조 관계가 끊어져 해당 파일은 모듈로 동작하지 않는다.
exports 를 사용할 경우는 exports 가 객체인 경우에 한함으로 exports = () => {} 로 정의된 케이스에는 사용할 수 없다
exports 와 module.exports 에는 참조 관계가 있음으로 동시에 사용하는 건 피하는게 좋다
'코드 > JS' 카테고리의 다른 글
[Vue3] reactive fundamental (0) | 2024.08.08 |
---|---|
[JS] 자바스크립트 주석 (0) | 2023.04.19 |
[NPX] 실행 옵션 (0) | 2022.12.13 |
[JS] URL 파싱 (0) | 2020.12.22 |
[JS] Base64 Decode (0) | 2020.05.29 |