繁体   English   中英

在模块化js中处理全局变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM