WeChat 애플릿에서 module.exports 및 내보내기 사용에 대해서는 아래 공식 문서를 확인하실 수 있습니다. 비교적 간단하고 사용하기 편리하지만 둘의 차이점은 그다지 명확하지 않습니다. .
내보내기와 module.exports의 관계를 더 잘 이해하기 위해 먼저 몇 가지 js 기본 사항을 다루겠습니다. 예:
// index.js Page({ onLoad: function(){ var a = {name: '张三'}; var b = a; console.log(a); console.log(b); b.name = '李四'; console.log(a); console.log(b); var b = {name: '王五'}; console.log(a); console.log(b); } })
app.js 실행 결과:
{ name: '张三' } { name: '张三' } { name: '李四' } { name: '李四' } { name: '李四' } { name: '王五' }
설명:
a는 객체이고, b는 참조, 즉 a와 b는 동일한 객체를 가리킵니다. 즉, a와 b는 동일한 메모리 주소를 가리키므로 처음 두 출력은 동일합니다. b가 수정되면, 즉 동일한 메모리 주소를 가리키는 a와 b의 내용이 바뀌므로 a도 반영되므로 세 번째와 네 번째 출력은 동일합니다.
b가 완전히 덮이면 b는 새 메모리 주소를 가리키고(원래 메모리 블록은 수정되지 않음) a는 여전히 원래 메모리 블록을 가리킵니다. 즉, a와 b는 더 이상 동일한 메모리 블록을 가리키지 않습니다. 즉, 이때 a와 b는 서로 아무런 관련이 없으므로 마지막 두 출력이 다릅니다.
require()는 모듈을 반환합니다. 수출이 아닙니다. 따라서
var name = '张三'; exports.name = name; exports.sayName = function() { console.log(name); }를 통해 내보내기에 값을 할당할 때 실제로는 빈 개체 module.exports에 두 개의
속성을 추가합니다. 위 코드는 과 동일합니다.
var name = '张三'; module.exports.name = name; module.exports.sayName = function() { console.log(name); }
// common.js function sayHello(name) { console.log(`Hello ${name} !`); } function sayGoodbye(name) { console.log(`Goodbye ${name} !`); } // 第一种情况,module.exports初始值为空对象,两个函数使用module.exports或exports都一样效果 module.exports.sayHello = sayHello; module.exports.sayGoodbye = sayGoodbye; exports.sayHello = sayHello; exports.sayGoodbye = sayGoodbye; // 第二种情况,module.exports初始值不为空对象,只能使用module.exports暴露接口,而不能使用exports暴露,会出现is not a function错误。 module.exports = {name:1};// module.exports给一个初始值 //以下两个正常使用 module.exports.sayHello = sayHello; module.exports.sayGoodbye = sayGoodbye; //使用以下两个会报错误sayHello is not a function exports.sayHello = sayHello; exports.sayGoodbye = sayGoodbye;요약하면 module.exports가 새로운 객체를 가리킬 때, 내보내기는 연결 끊김 module.exports에 대한 참조가 없으면 module.exports는 새 메모리 블록을 가리키는 반면, 내보내기는 여전히 원래 메모리 블록을 가리킵니다.
따라서 둘 사이의 관계가 명확하지 않은 경우 module.exports를 사용하여 인터페이스를 노출하고, 내보내기를 사용하여 인터페이스를 노출하지 마십시오.
위 내용은 WeChat 미니 프로그램에서 module.exports와 내보내기의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!