gpt4 book ai didi

需要 JavaScript 设计模式帮助 : Loose Augmentation of Modules

转载 作者:数据小太阳 更新时间:2023-10-29 04:10:43 27 4
gpt4 key购买 nike

为清晰起见进行编辑 - @Qantas94Heavy - 我明白它在“说”什么或应该做什么,但我不明白的是为什么,更重要的是如何工作:

我正在阅读有关 JS 模块模式的高级教程,它给出了这个示例:

var MODULE = (function (my) {
// add capabilities...

return my;
}(MODULE || {}));

困扰我(我需要你的帮助)的是最后一句话:

(MODULE || {}));

我无法理解使之成为可能的语法规则。在搜索了关键字“JavaScript 模块语法”和“模块模式速记”之后,我发现我仍然不太了解这背后的基础。

有人可以解释一下或为我指明正确的方向来理解这个/获得更深入的理解吗?

真诚的,格吉

最佳答案

(function(){

})();

是一个自调用的匿名函数。在你的例子中,它处理“我的”对象参数:它对“我的”做一些事情然后返回它。

在您的例子中,函数接收的“我的”参数是“(MODULE || {})”。

&& 和 ||运算符称为短路运算符。 ||将返回,如果“MODULE”对象存在,“MODULE”对象,否则,将创建一个空对象以在函数内部使用。该函数将对该对象执行任何操作,该对象将成为返回的“MODULE”对象。

它通过创建一个闭包来工作:只要 MODULE 存在(它没有被垃圾回收),自调用匿名函数及其在赋值时的状态也会存在。这使得添加的任何功能都具有持久性。

关于需要 JavaScript 设计模式帮助 : Loose Augmentation of Modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18420992/

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