0

可能重复:
如何创建全局可访问变量?

如何在以下范围内制作变量和函数:

$(function() {  })

全球范围?

4

2 回答 2

4

你有这些选择。

  1. 您可以在函数范围之前预先声明变量。
  2. 您可以使用window前缀使它们在全局范围内。

选项1:

var myGlobal;
$(function() { 
    myGlobal = 4;
});

选项#2:

$(function() { 
    window.myGlobal = 4;
});
于 2013-01-13T05:05:32.613 回答
0

如果您希望闭包内的代码在全球范围内可用,那么我建议您使用JS namespaces。例如:

var myNameSpace = myNameSpace || {} //create a namespace

使用命名空间可确保您不会污染全局命名空间。然后在你的闭包中,你可以使用对象、函数和变量来扩展命名空间:

$(function(){
  if(myNameSpace){
    myNameSpace.function1 = function(p1){ return $(p1).val() };
    myNameSpace.function2 = function(p2){ return $(p2).val() };
  }
})();

function1 和 function2 应该通过 myNameSpace “全局”可用。

于 2013-01-13T05:24:39.930 回答