오늘 만난 필기시험 문제는 답변 부탁드립니다
A.js와 b.js는 서로를 요구하는데, 무한루프에 빠지게 될까요? 결과를 내보낼 수 있나요? 이 문제를 피하는 방법은 무엇입니까?
迷茫2017-06-28 09:30:31
이것은 JavaScript 모듈의 순환 로딩을 조사하는 것입니다.
es6의 모듈 메커니즘을 사용하여 이 문제를 해결할 수 있습니다. ES6의 "순환 로딩" 처리는 CommonJS와 근본적으로 다릅니다. ES6는 "루프 로딩"이 발생하는지 전혀 신경 쓰지 않으며, 단지 로드된 모듈에 대한 참조를 생성합니다. 개발자는 값이 실제로 얻어질 때 그 값을 얻을 수 있는지 확인해야 합니다.
PHP中文网2017-06-28 09:30:31
문자 그대로 이해했다면
만 사용하세요. 으아악그러면 이 문제는 CommonJS의 순환 참조 문제로 이해될 수 있습니다. CommonJS의 접근 방식은 모듈이 "루프 로드"되면 실행된 부분만 출력되고 실행되지 않은 부분은 출력되지 않는다는 것입니다.
두 모듈 간의 순환 참조를 개념적으로 이해하면 es6의 모듈 참조도 포함됩니다.
으아악ES6은 "루프 로딩"이 발생하는지 전혀 신경 쓰지 않고, 로드된 모듈에 대한 참조를 생성할 뿐입니다. 개발자는 값을 실제로 얻을 때 해당 값을 얻을 수 있는지 확인해야 합니다.
단순히 CommonJs를 사용하거나 esm(es6 모듈)을 사용하면 무한 루프가 발생하지 않습니다. 하지만 두 가지를 혼합하면 이런 일이 발생할 수 있습니다.
문이 잘 쓰여진 Ruan Yifeng의 블로그를 추천합니다.
http://www.ruanyifeng.com/blo...