node 의 exports 와 module.exports 의 관 계 를 간단히 말 합 니 다.

1953 단어 nodemodule.exports
전단 을 하기 때문에 node 의 생태 에 관심 이 많 습 니 다.node 에서 comonJS 모듈 화 실현 에 큰 편 의 를 주 었 습 니 다.그 전에 도 출 된 module.exports 와 exports 에 대해 모호 하 게 생각 했 습 니 다.오늘 은 정 리 를 하 겠 습 니 다.
먼저 js 기초 부분의 복습 을 하 겠 습 니 다.

let obj1 = {}
let obj2 = obj1
obj2.a = 'a'
obj1.b = 'b'
console.log(obj1) //{a: 'a', b: 'b'}
console.log(obj2) //{a: 'a', b: 'b'}
obj2 = {}
console.log(obj2) //{}
console.log(obj1) //{a: 'a', b: 'b'}

obj 1 은 메모리 에 있 는 블록 을 가리 키 고 obj 1 이 메모리 블록 을 가리 키 는 인용 을 obj 2 에 전달 합 니 다.이때 obj 1 과 obj 2 는 메모리 에 있 는 같은 블록 을 가리 키 기 때문에 obj 1 이나 obj 2 를 통 해 이 메모리 에 속성 을 추가 하 더 라 도 obj 1 과 obj 2 에 동시에 반응 합 니 다.이때 obj 2 는 원래 메모리 블록 과 의 관 계 를 끊 고 새로운 메모리 블록 을 가리 키 고 있 습 니 다.그리고 obj 1 은 가장 먼저 메모리 블록 을 가리 키 는데 이때 그들 은 각자 의 메모리 블록 을 관리한다.
이제 module.exports 와 exports 의 관 계 를 봅 시다.
그림 이 처음 시 작 될 때 module.exports 와 exports 는 같은 메모리 영역,빨 간 선 이 포 함 된 영역 을 가리 키 는데 그 중에서 module.exports 가 가리 키 는 영역 은 회색 으로 채 웁 니 다.

시초
현재 우 리 는 module.exports={a:"a"}로 내 보 냅 니 다.그러면 module.exports 는 원래 의 빨간색 선과 둘러싸 인 메모리 블록 을 차단 하고 새로운 메모리 블록 을 가리 키 며 회색 으로 채 워 진 메모리 블록 을 가리 키 고 있 습 니 다.그림 과 같 습 니 다.

module.exports 내 보 내기
또는 우리 가 exports={a:"a"}로 내 보 내 면 exports 는 원래 의 빨 간 선 에 포 함 된 메모리 블록 을 차단 하고 새로운 메모리 블록 을 가리 키 고 그림 과 같 습 니 다.

exports 로 내 보 내기
중요 한 것 은 우리 가 require 를 통 해 가 져 온 것 은 영원히 module.exports 입 니 다.즉,그림 에 회색 으로 채 워 진 메모리 블록 입 니 다.빨간색 라인 의 초기 메모리 블록 이 아 닙 니 다.따라서 내 보 낼 때 module.exports 든 exports 든 내 보 낼 내용 이 회색 메모리 블록 에 걸 려 있 는 것 이 가능 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기