Javascript变量的窗口作用域与应用作用域
window vs. application scope for Javascript variables
有人能解释一下为什么把所有变量都放在应用程序作用域和窗口作用域吗?应用范围总是更好吗?
- 性能?
- 防止命名冲突?
- 其他原因吗?
窗口范围
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没有内置模块(或组件或类)的概念,为了组织你的代码,你必须采用类似于你在"应用范围"中展示的模式。
更详细的解释可以在网上搜索"JavaScript Module Pattern"
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 将作用域存储在JSON中
- 从控制器继承了隔离的作用域以生成可重用的指令
- 从ng模板访问作用域
- 调用私有作用域
- 对父作用域的指令更新延迟了一步
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- AngularJS事件,在应用所有作用域后触发
- angularjs范围内可以存储的最大数据大小是多少?具有重作用域的应用程序的性能
- 通过JQuery管理ajax应用程序中的javascript作用域
- 在Angular应用之外分配作用域对象
- 构建CoffeesSript浏览器应用程序——命名空间和作用域问题
- Javascript变量的窗口作用域与应用作用域
- 如何在rails应用程序中有效地定义javascript和css的作用域
- Angular 2应用的作用域
- 根据作用域变量应用css样式
- AngularJS应用中未定义的作用域变量
- 作用域没有应用到作用域变量
- 对角度指令应用作用域并调用对象函数