是否从javascript中的另一个模块更新全局变量?

是否从javascript中的另一个模块更新全局变量?,javascript,global-variables,Javascript,Global Variables,我如何做到这一点 我有一个名为“tooltip”的模块,它有一个“fade”函数,该函数反过来使用一个全局“element”变量。该变量是对DOM元素的引用。我想从另一个名为“lightbox”的模块更新它,这样我就可以让“fade”函数处理淡入效果。我的所有模块都是使用闭包声明的 var tooltip = function{ var element; return{ fade: function(){ fade code goes he

我如何做到这一点

我有一个名为“tooltip”的模块,它有一个“fade”函数,该函数反过来使用一个全局“element”变量。该变量是对DOM元素的引用。我想从另一个名为“lightbox”的模块更新它,这样我就可以让“fade”函数处理淡入效果。我的所有模块都是使用闭包声明的

    var tooltip = function{
       var element;
       return{
          fade: function(){ fade code goes here...}
       };
    }();
我可以执行以下操作来更新lightbox模块中的“元素”吗

tooltip.element = document.getElementByID('lightbox-con');
没有jQuery代码请…

如果使用模块,您指的是对象,那么您可以这样做:

var tooltip = {
    element: null,
    fade: function() {
        //fade code goes here...
        // you can access the element via this.element
    }
}
然后您可以按照说明更新元素:

tooltip.element = document.getElementByID('lightbox-con');

< > > <代码>元素< /> >只用于<代码>淡出>代码>函数,您也可以考虑将元素传递给该函数:

var tooltip = {
    fade: function(element) {
       //fade code goes here...
    }
}
并且做:

tooltip.fade(document.getElementByID('lightbox-con'));

这取决于你真正想做什么。

我想基本上就是这样。工具提示和lightbox是对象,分别位于单独的文件中。刚开始学习,所以我还在四处寻找。@Joann:不知道我是否理解。在原始代码中,
元素
不是全局变量。它是匿名函数的本地函数。您不能用原始代码描述的方式更改它。您的代码在语法上不正确。在函数表达式中不能省略
()
。请更正。