为什么这种包装javascript的模式
Why this pattern of wrapping javascript
我在好几个地方都见过这种JavaScript代码模式。谁能给我一个很好的解释?提前感谢!
var someVar;
(function(someVar){
someVar.foo = 'bar';
//...
})(someVar || (someVar={});
这是javascript模块模式。实际上,您正在创建一个封装,您可以在其中存储函数(公共,私有(,变量,其他模块。使用此模式,您不会污染全局。它可以用来模拟Java的包,.NET命名空间。
例如,我使用此模式将我的项目划分为以下命名空间。
- 项目名称
- 项目名称.帮助程序
- 项目名称.服务
- 项目名称事件
每个命名空间都有自己的函数,因此它们不会混合。我可以在不同的命名空间中使用相同的函数名称。您可以编写私有函数,这些函数只能从同一模块使用,而从公共模块无法访问。这是向javascript添加面向对象原则的方法之一。
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 包含圆括号的JavaScript Regex模式
- 用于操纵DOM API的Javascript设计模式
- 用javascript创建一个看起来正常分布的模式
- 揭示模块模式(JavaScript) - 这无法访问私有方法
- 匹配每个字符,直到在行首出现模式(JavaScript)
- 用于处理成功、失败、重试的异步请求的设计模式?(JavaScript)
- 模块模式javascript不是函数
- 从自定义模块模式Javascript库调用XMLHttpRequest时不会发生任何事情
- 浏览器中的观察者模式javascript:订阅事件"添加了Dom元素“;并处理这个元素
- IE11在Iframe下的怪癖模式-javascript错误
- 返回具有链接模式javascript的项
- 命令模式 JavaScript 中的执行函数
- gsp下拉值返回NaN在IE7文档模式(javascript)
- 动态模式Javascript
- 保持服务器时间,即使在离线模式(javascript/html5)
- 我如何专业地构建我的模块模式Javascript项目
- 怪癖模式 - JavaScript 不会更新表单选择选项
- 设计模式- JavaScript.安全提取深层(可能不存在)对象属性的通用函数