[英]Dealing with global variables in modular js
我想在重写大型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
它。 我认为使用这种样式的模块意味着您必须使其成为对象属性(对于ES2015模块,则不必这样做)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.