它是什么类型的Javascript模式
What type of Javascript Pattern is it?
var AppName = (function (parent, $) {
var controller = parent.controller = parent.controller || {};
controller.index_page = function (parent) {
var createPage = parent.createPage = parent.createPage || {};
createPage.init = function () {
alert('javascript initialized');
};
return createPage;
}(controller);
return parent;
}(AppName || {}, jQuery));
它是哪种类型的Javascript模式?我在哪里可以找到有关它的更多信息?
这被称为模块模式(至少我知道这个名字)。
http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html
此模式的一些好处包括:
-
封装,使您能够在闭包中定义私有字段。
-
您可以通过指定第三个参数undefined并且不向其传递任何内容来确保undefined值始终正确(这是因为undefined实际上可以在javascript中被覆盖。
-
Javascript 命名空间,以便更清楚地分离关注点。
使用未定义方法的示例如下:
var AppName = (function (parent, $, undefined) { //add parameter for undefined here
var controller = parent.controller = parent.controller || {};
controller.index_page = function (parent) {
var createPage = parent.createPage = parent.createPage || {};
createPage.init = function () {
alert('javascript initialized');
};
return createPage;
}(controller);
return parent;
}(AppName || {}, jQuery)); //do not define anything for the undefined parameter here.
函数末尾括号的目的是立即调用函数并形成闭包,使您可以访问公共变量/函数,同时隐藏私有变量/函数。这被称为立即调用的函数表达式 (IIFE),有时称为 iffy。
它被称为模块模式。
特别是这是一个立即调用的函数
var Module = (function(parameters) {
})(parameters)
我建议看看Addy Osmani的整本书,而不仅仅是我上面链接的部分。
这里的答案是正确的。
所以这是一本很棒的书,你可以在其中找到很多关于javascript模式的信息,也有很多关于模块模式的信息:
http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript
我在哪里可以找到有关它的更多信息?
我在Stoyan Stefanov的一本名为Object-Oriented Javascript的书中看到过这种模式。
http://www.amazon.co.uk/Object-Oriented-Javascript-Stoyan-Stefanov/dp/1847194141
- 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.安全提取深层(可能不存在)对象属性的通用函数