我如何把所有这1200+行自定义javascript到一个闭包,所以没有全局变量
How do I put all this 1200+ line custom javascript into a closure so there are no global vars?
标题基本上解释了问题。代码包括jQuery和$(document).ready(function(){...})
,其中包含800多行和400多行函数声明。也有一些全球知名人士名列前茅。我想把所有这些放到闭包中,而不影响(我应该说影响?)代码当前的功能(或者至少希望很少)!
不知道代码是什么样子的
(function(window, $) {
// your code here
}(window, jQuery));
但是如果一切都已经在$(document).ready()
中,那么你真的不需要做任何事情。
$(document).ready(function
已经将你所有的代码包装在一个函数中,并将其隐藏在全局作用域中。
$(document).ready(function(){
var closurevar=22;// will be available withint
// the function body but not outside
console.log(closurevar);//will be 22
globalVar=33;//not having the var keyword puts this
// in global scope
window.globalVar2=44;//more correct way to define global var
// jquery defines $ in this way.
});
console.log(closurevar);//will be undefined
// globalVar won't be available until document ready is executed
console.log(globalVar);// will be undefined but will be set after
// document.ready has executed
相关文章:
- 使用Google闭包编译器包含一个Ecmascript 6类
- 在谷歌地图示例中为 Ajax 调用制作一个 JavaScript 闭包
- 闭包中的本地变量从外部更改.这是一个javascript错误,或者我做错了什么
- 将一个简单的函数声明形成JavaScript中的闭包
- 递增并存储一个“;私人的“;使用闭包的变量
- 为什么需要在这个闭包中创建一个变量
- 这是闭包的一个很好的例子吗?
- 为什么允许通过原型继承访问另一个闭包范围内的私有变量
- 为什么这不是一个javascript闭包
- JavaScript 中的闭包:再举一个例子
- 这是一个JavaScript闭包错误吗?
- 闭包的意外行为:回调保存最后一个值
- Javascript - 在闭包中使用函数构造函数是一个坏主意吗?
- 我们是否可以使用谷歌闭包创建一个带有复选框和组合框的对话框
- 向Jquery$.each传递一个闭包
- 我如何告诉谷歌闭包编译器不要删除一个变量
- Is回调函数始终是一个闭包
- ES2015导出的类是否创建了一个闭包
- 我如何把所有这1200+行自定义javascript到一个闭包,所以没有全局变量
- 一个闭包中的jquery tmpl