2010-05-01 58 views

回答

3

通常情况下,可以实现这样的:

(function(){ 

    var myLocal = "I'm local!"; 

    window.myGlobal = "I'm global!"; 

})(); 
+0

当我知道jQuery在身边的时候,我通常会污染'$'命名空间而不是'window'。 '$ .myCompany'成为钩点,其他所有内容都被封装在功能框中。 – gnarf 2010-05-01 19:08:49

+0

+1这实际上是jQuery本身用于相同目的的方法。 jquery.js的全部内容如下所示:'(function(window,undefined){...})(window);'尽管我不明白需要将'window'传递给函数。即使'window'没有通过,我认为它仍然可以在容器功能中使用。 – 2010-09-10 19:44:39

0

文森得到了最多的防水方法(包装在一个函数的所有内容)。

人们做的其他事情是定义一个全局对象,它或多或少地作为你的包的命名空间。

window.ChrisPkg = { 
    global1: ['a','b','c'], 
    global2: 42 
    globalfunc: function() { alert('hello world!'); } 
} 

ChrisPkg.extraGlobal = 'foo';