为什么这种包装javascript的模式

Why this pattern of wrapping javascript

本文关键字:模式 javascript 包装 为什么      更新时间:2023-09-26

我在好几个地方都见过这种JavaScript代码模式。谁能给我一个很好的解释?提前感谢!

var someVar;
(function(someVar){
    someVar.foo = 'bar';
    //...
})(someVar || (someVar={});

这是javascript模块模式。实际上,您正在创建一个封装,您可以在其中存储函数(公共,私有(,变量,其他模块。使用此模式,您不会污染全局。它可以用来模拟Java的包,.NET命名空间。

例如,我使用此模式将我的项目划分为以下命名空间。

  • 项目名称
  • 项目名称.帮助程序
  • 项目名称.服务
  • 项目名称事件

每个命名空间都有自己的函数,因此它们不会混合。我可以在不同的命名空间中使用相同的函数名称。您可以编写私有函数,这些函数只能从同一模块使用,而从公共模块无法访问。这是向javascript添加面向对象原则的方法之一。