我想在重写大型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
};
};
});
我将如何重写它以本地化全球并真正模块化。
假设 global
是用该模块使用仅使用,请在define
呼叫中定义它:
define(function(){
var global = 1; // <=============
return {
somefunction: function() {
var local = global * 2;
console.log("local = " local); //output
};
};
});
如果您希望其他模块使用global
,则将其放在自己的模块中,并具有模块require
IT。我认为,使用这种模块样式,这意味着您必须使其成为对象属性(使用ES2015模块,您不必这样)。