是否从javascript中的另一个模块更新全局变量?
我如何做到这一点 我有一个名为“tooltip”的模块,它有一个“fade”函数,该函数反过来使用一个全局“element”变量。该变量是对DOM元素的引用。我想从另一个名为“lightbox”的模块更新它,这样我就可以让“fade”函数处理淡入效果。我的所有模块都是使用闭包声明的是否从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
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:不知道我是否理解。在原始代码中,
元素
不是全局变量。它是匿名函数的本地函数。您不能用原始代码描述的方式更改它。您的代码在语法上不正确。在函数表达式中不能省略()
。请更正。