프론트엔드 모듈 사양에는 CommonJs, AMD, CMD의 세 가지가 있습니다.
서버측에서는 CommonJs를 사용하고, 브라우저 환경에서는 AMD와 CMD를 사용하고 있습니다.
AMD는 RequireJS 승격 과정에서 표준화된 모듈 정의 출력입니다.
CMD는 SeaJS 프로모션 과정에서 모듈 정의의 표준화된 출력입니다.
AMD: 조기 실행(비동기 로딩: 종속성 먼저 실행) + 지연 실행
CMD: 지연 실행(로드할 때까지 실행, 순서대로 실행)
함수 쓰기
function f1(){ //... } function f2(){ //... }
모듈은 특정 기능을 하나의 파일에 넣어서 모듈을 구성하는 파일입니다. 필요할 때 이 파일을 로드하고 그 안에 있는 함수를 호출하세요.
그러나 그렇게 하면 전역 변수가 오염되고, 변수 이름이 다른 모듈과 충돌하지 않는다는 보장이 없으며, 모듈 간에 관계가 없습니다. 회원.
Object 는
var module = { star : 0, f1 : function (){ //... }, f2 : function (){ //... } }; module.f1(); module.star = 1;
로 작성됩니다. 모듈은 객체로 작성되고, 객체 속성 <🎜을 호출하여 모듈 구성원이 객체에 캡슐화됩니다. > 모듈 멤버에 접근하여 사용할 수 있습니다. 그러나 동시에 모듈 멤버가 노출되고 모듈의 내부 상태가 외부 세계에 의해 수정될 수 있습니다.
즉시 함수 실행var module = (function(){ var star = 0; var f1 = function (){ console.log('ok'); }; var f2 = function (){ //... }; return { f1:f1, f2:f2 }; })(); module.f1(); //ok console.log(module.star) //undefined
math.js exports.add = function() { var sum = 0, i = 0, args = arguments, l = args.length; while (i < l) { sum += args[i++]; } return sum; }; increment.js var add = require('math').add; exports.increment = function(val) { return add(val, 1); }; index.js var increment = require('increment').increment; var a = increment(1); //2
인터페이스 를 얻어야 합니다.
하지만 이는 브라우저 측면에서 많은 문제를 안고 있습니다. 브라우저 측에서 JavaScript를 로드하는 가장 좋고 쉬운 방법은 문서에