我想在重写大型js项目时采用模块化方法。我希望使用require.js来管理它。
但是,我在理解如何重新编码以消除全局变量时遇到了一些困难。
所以,例如,我之前有过
var global = 1; //define global
somefunction(); //call function that uses global
function somefunction(){
var local = global * 2; //use global
console.log("local = " local); //output
};
并为require.js重写
define(function(){
return {
somefunction: function() {
var local = global * 2; //still using global
console.log("local = " local); //output
};
};
});
我如何重写本地化全局并使其真正模块化。
答案 0 :(得分:0)
假设global
仅由 用于该模块,您可以在define
回调中定义它:
define(function(){
var global = 1; // <=============
return {
somefunction: function() {
var local = global * 2;
console.log("local = " local); //output
};
};
});
如果您希望其他模块使用global
,您可以将其放在自己的模块中并使用模块require
。我认为使用这种模式,这意味着你必须使它成为一个对象属性(使用ES2015模块,你不必)。