我刚刚阅读了一篇关于Java Script中Module Module的代码项目的小文章。在阅读javascript代码后,很少有区域代码编写方式不是很清楚。我写了javascript但我不熟悉提前编写javascript方式。这是我从codeproject http://www.codeproject.com/Articles/619747/Module-Pattern-in-Java-Script-in-Depth
中读取的url1)//生成用于添加数字的新函数的函数
function addGenerator(num) {
// Return a simple function for adding two numbers
// with the first number borrowed from the generator
return function (toAdd) {
return num + toAdd
};
}
// addFive now contains a function that takes one argument,
// adds five to it, and returns the resulting number
var addFive = addGenerator(5);
// We can see here that the result of the addFive function is 9,
// when passed an argument of 4
alert(addFive(4) == 9); // Which return true
当addGenerator正在调用时,5已作为参数传递但我只是不理解这一行是如何工作的
return function (toAdd) {
return num + toAdd
};
addGenerator(5)将返回什么?
这将如何返回true - > alert(addFive(4)== 9); //哪个返回true
2)
var EmployeeModule = (function (my) {
my.anotherFunction = function () {
return alert('this is another function.');
};
} (EmployeeModule));
上述代码如何工作&会被援引吗?请详细说明他们想要做什么?
3)
var EmployeeModule = (function (my) {
// add functionality...
return my;
}(EmployeeModule || {}));
我只是不明白这一行(EmployeeModule || {}))
请解释这一行的含义。
4)模块模式中的全局导入
我们还可以在我们的模块中导入其他java脚本库
(function ($, Y) {
// now have access to globals jQuery (as $) and YAHOO (as Y) in this code
}(jQuery, YAHOO));
Sub-modules in Module Pattern
在很多情况下我们可以创建子模块。这就像创建一个常规模块一样 折叠|复制代码
EmployeeModule.subModule = (function () {
var my = {};
// ...
return my;
}());
寻找上述代码的良好解释,并提供更多示例以获得更好的解释。感谢
答案 0 :(得分:0)
我不经常使用模块模式,因此我无法回答有关此主题的所有问题。我想解答有关EmployeeModule || {}
我认为更容易理解在不使用模块模式的常规上下文中的含义。考虑一下。
var foo = foo || {};
这是检查foo
是否已存在。如果是这样,我们不会覆盖,我们只是将它设置为等于它......就像这样:
var foo = {bar:'value'};
var foo = foo;
如果foo不存在,那么我们正在创建一个新对象,如下所示:
var foo = {};
所以,代码说“foo等于前一个foo(如果foo已经是某个东西)或者一个新对象(如果foo已经不存在了)”
在您的示例中,EmployeeModule || {}
作为名为my
的参数传递到即时调用的函数表达式中。如果EmployeeModule
是某种内容,则设置为my
。如果EmployeeModule
为空,则my
的值为新对象。