避免节点中全局变量的最佳实践

Best practice to avoid global vars in Node?

本文关键字:最佳 全局变量 节点      更新时间:2023-12-10

使用节点。

试图避免全局变量,但我需要在两个未嵌套的函数之间共享一个变量(整数)。这两个函数都是直接在全局作用域下声明的。

这样的事情被认为是我努力完成的一个好的实践吗?如果没有,还有更好的模式可以遵循吗?

function doStuffWithDataFromEventListener(){           
    var a = inner2().num;
}();
var fakeListener = function(){ //make believe event listener that is only called once.
   var num = 7;
   return {num: num};
};

使用模块模式:

 // Global scope
 (function(){
    // Function (module) scope
    var x = 5;  // Module level (not global) variable

    function a(){
         return ++x;
    }
    function b(){
         return ++x;
    }
    a();  // 6
    b();  // 7
 }());

有几种控制/阻止全局变量的方法,即创建一个闭包函数并将所有代码放入其中。所有代码都将作为匿名函数出现在DOM中。您还可以为该函数命名,这样测试起来会更容易。您还可以创建一个全局对象,并将所有方法、变量和属性附加到该对象上。我相信你以前见过这个。

var myAppObj = myAppObj || {};
myAppObj.name = "tommy";
MyAppObj.odStuffFunc = function() {
      // do stuff
};