窗口与Javascript的变量
问题描述:
有人可以解释为把所有的变量与应用范围与窗口范围的原因的应用范围?应用范围总是更好吗?窗口与Javascript的变量
- 表现?
- 防止命名collisons?
- 其他原因?
窗口范围
var myFunction1=function(){
//do something
};
var myFunction2=function(){
//do something else
};
var myObject1={
//store stuff
};
var myDOMElement1=$('.myDOMElement1');
应用范围
var myApplication={
'myFunction1':function(){
//do something
},
'myFunction2':function(){
//do something else
},
'myObject1':{
//store stuff
},
'myDOMElement1':$('.myDOMElement1')
};
答
原因是信息隐藏和封装。 由于JavaScript没有内置模块(或组件或类)的概念,以组织你的代码,你必须采用类似于您在“适用范围”显示一个模式。
有关更全面的解释,请在Internet上搜索“JavaScript模块模式”。
这不是“应用程序”范围。这只是命名空间的对象。香草JS没有“应用”范围。 – 2013-05-08 21:06:11
不应该有任何主要的性能差异,但不定义窗口上的东西会使你的代码更容易出错,由于不相关或写得不好的代码。 – 2013-05-08 21:09:13
@KevinB所以你说它主要是关于最小化人为错误,而不是更高性能? – 2013-05-08 21:10:53