Javascript变量的窗口作用域与应用作用域

window vs. application scope for Javascript variables

本文关键字:作用域 应用 窗口 变量 Javascript      更新时间:2023-09-26

有人能解释一下为什么把所有变量都放在应用程序作用域和窗口作用域吗?应用范围总是更好吗?

  1. 性能?
  2. 防止命名冲突?
  3. 其他原因吗?

窗口范围

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"