CommonJS에서 exports 및 module.exports의 차이
exports와 모듈.exports의 상용 형식
우선, 두 가지 상용 형식:
제1종
// dep.js
exports.A = function() {}
// app.js
var dep = require('dep');
dep.A()
이 중 exports.A = function() {}
으로도 쓸 수 있다 module.exports.A = function() {}
제2종
// dep.js
module.exports = function () {}
// app.js
var dep = require('dep');
dep();
여기에만 사용할 수 있으니 주의하세요module.exports
.다음은 왜.
exports와 모듈.exports 관계
SO의 명답var module = { exports: {} };
var exports = module.exports;
// your code
return module.exports;
다음을 확인할 수 있습니다.
// dep.js
exports.A = function() {}
// app.js
var dep = require('dep');
dep.A()
// dep.js
module.exports = function () {}
// app.js
var dep = require('dep');
dep();
SO의 명답
var module = { exports: {} };
var exports = module.exports;
// your code
return module.exports;
다음을 확인할 수 있습니다.
module.exports
exports
는 module.exports
의 인용으로 코드를 간소화하는 데 도움을 준다. 예를 들어 module.exports.A = 1
는 exports.A = 1
로 간략하게 쓸 수 있다.주의해야 할 사항:
exports
에 직접 값을 부여하면 exports = 1
과 exports
사이의 관계를 끊는다.그 다음에 아무리 module.exports
에 변수를 걸어도 내보내지지 않습니다.exports
의 정확한 사용 방법을 의미하고 exports.A = 1
이런 변수의 형식만 있다.exports
는 A 속성을 포함하는 모듈을 내보내지 않지만exports.A = B
가능합니다.exports = { A: 1 }
이 직접 부여되면 module.exports = { A: 1 }
과 modules.exports
간의 관계를 끊고 modules.exports = 1
의미를 잃게 된다.그러나 이런 형식은 당신이 사용하고 싶은 데이터 형식을 직접 내보내는 데 자주 사용된다. 예를 들어 다음과 같다.exports
는 하나의 수조를 직접 도출하여 exports
D
는 함수/클래스를 직접 도출하여 var D = require('dep')
또는 modules.exports = [1, 2]
참고
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.