JS模块化(IIFE CommonJS ESModule UMD)
// 立即执行函数(IIFE)
(function() {
var secret = 'secret';
function doSomethingSecret() {
console.log(secret);
}
window.myModule = {
doSomething: doSomethingSecret
};
})();
// CommonJS
// 在Node.js环境中使用require和module.exports进行模块化
var fs = require('fs');
var secret = 'secret';
function doSomethingSecret() {
console.log(secret);
}
module.exports.doSomething = doSomethingSecret;
// ES6模块
// 使用export和import关键字
const secret = 'secret';
function doSomethingSecret() {
console.log(secret);
}
export { doSomethingSecret };
// UMD (Universal Module Definition)
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define(['lodash'], factory);
} else if (typeof exports === 'object') {
// Node, CommonJS-like
module.exports = factory(require('lodash'));
} else {
// Browser globals
root.MyModule = factory(root._);
}
}(this, function(_) {
function doSomethingSecret() {
console.log('secret');
}
return { doSomething: doSomethingSecret };
}));
这个代码示例展示了如何在不同的环境下实现JavaScript模块化。包括立即执行函数(IIFE),CommonJS,ES6模块和UMD。每种模块化方式都有其特点,适用于不同的运行环境。
评论已关闭