gpt4 book ai didi

javascript - 关于 JavaScript 中的模块模式

转载 作者:行者123 更新时间:2023-11-30 06:30:59 24 4
gpt4 key购买 nike

我刚刚阅读了一篇关于 Java Script 模块模式代码项目的小文章。在阅读了 javascript 代码之后,很少有区域不是很清楚代码的编写方式。我写了 javascript 但我不熟悉提前编写 javascript 的方式。这是我从 codeproject http://www.codeproject.com/Articles/619747/Module-Pattern-in-Java-Script-in-Depth 中读取的 url

1)//一个函数生成一个新的数字相加函数

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);//哪个返回真

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;
}());

通过更多示例寻找对上述代码点的良好解释以获得更好的解释。谢谢

最佳答案

我不经常使用模块模式,所以我无法回答你关于这个主题的所有问题。我想解决您关于 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 的值就是一个新对象。

关于javascript - 关于 JavaScript 中的模块模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17670251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com