问题标签 [revealing-module-pattern]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
882 浏览

javascript - 同一命名空间中的多个“类”,但在不同的文件中

我有一个命名空间:Foo.Bar.Baz在其中我有Qux类。这些是使用显示模块模式定义的:

现在,在一个单独的文件中,我想将该Quux类添加到这个命名空间。我怎么做?当我使用与上面相同的模式时,它会被忽略,因为我猜一个正在覆盖另一个。

0 投票
0 回答
95 浏览

javascript - 显示模块隐式调用内部函数 - 这是“气味”吗

我正在尝试改进我的 javascript 并一直在使用显示模块模式以取得良好的效果,但我注意到模块中的代码不在函数中或在创建时执行返回已经利用了这一点,例如:

我可以看到这是为依赖于它被调用的函数创建一种构造函数形式var myModule = new MyModule(jQuery)

对此的对错的任何反馈表示赞赏。

0 投票
2 回答
1989 浏览

javascript - 您如何在显示原型模式中命名对象?

我一直在使用 Revealing Module 模式并且有几个命名空间。例子:

我正在转向显示原型模式以获得一些内存使用改进,因此我可以将对象装饰为另一个功能。如何将其保存在 myProject.models 命名空间中?这给了我的 JavaScript 错误:

0 投票
1 回答
699 浏览

javascript - 从同一命名空间内通过其完全限定名称调用命名空间函数

您是否有任何理由想要调用在命名空间内定义的函数,该命名空间是使用显示模块模式使用其完全限定名称创建的?例如,下面的 A 与 B?

示例 A。

示例 B。

0 投票
3 回答
793 浏览

javascript - 如何让一些揭示模块代码仅在 DOM 准备好后运行?

我们使用显示模块模式将内容组织到“命名空间”中。一些初始化代码(用于 jQuery Validation 插件)只能在文档加载后调用。

$.validator.setDefaults位在 DOM 就绪包装器中时,它永远不会被调用,但当它在 IIFE 中时,它会被调用。

为什么?标记某些模块代码以在 DOM 准备好后运行的“最佳”方法是什么?

编辑:使示例代码更能说明问题

0 投票
2 回答
645 浏览

javascript - 从 Javascript 模块中获取事件目标

我第一次使用显示模块模式并逐渐掌握它。

在我的html中,我有这样的东西:

在Javascript中我有:

如何在上面指示的位置获取单击的元素?

0 投票
5 回答
2218 浏览

javascript - 我可以使用显示模块模式对闭包中的变量使用 getter/setter 吗?

我以为我可以使用 setter 来更改闭包变量,但是当我直接访问该变量时,它没有改变。只有当我使用 getter 访问它时,我才能得到预期的重新分配变量。是否在某个不同的范围内创建了第二个变量?这里发生了什么?

我已将上面的示例添加到小提琴中

0 投票
0 回答
138 浏览

jquery - telerik using "built-in" jQuery: module pattern

I'm having problems binding events with telerik & jquery. I've found documentation where telerik has it's version of jquery integrated, in this case it's 1.9.1:

I'm trying to use the revealing module pattern as well. Here are the ways I tried to bind the click event:

Here's the rest.

}();

Thanks!!!

0 投票
2 回答
240 浏览

javascript - 使用“this”关键字从内部函数设置JavaScript“类”属性?

我很惊讶我找不到关于这个话题的更多信息(可能是我的搜索技能低于标准)。通常,一旦我认为我理解了 JavaScript 关键字的工作原理,“this”就会按照我理解的方式停止工作。我将解决一个这样的问题。

我的理解:“当使用'new'关键字调用函数时......'this'指的是根函数/'class'。当从实例化的'class'中的函数使用时,它指的是CALLING函数”。-- 理解这一点非常重要:当从页面上的另一个函数调用函数时,“this”关键字将引用调用函数,而不是目标函数所在的“类”。

在下面的示例中,我尝试了两种从公共函数设置变量的方法。两者都失败了。我试图理解为什么会这样以及如何使它工作。

更新

我可能应该指出我正在使用显示模块模式,并且希望任何解决方案都在这种情况下。虽然我确信有多种不同的方法可以做到这一点,但我想将解决方案集中在这种模式上。

0 投票
1 回答
1080 浏览

javascript - 显示模块模式和文档准备就绪

我正在尝试使用显示模块模式来实现 Canvas 游戏。因此,我必须获取 Canvas DOM 元素及其上下文。这意味着在 DOM 完全加载之前不应执行该函数。因为我使用的是 jQuery,所以我只想将所有内容都放在 document.ready() 中,但这会与范围混淆。从这个例子可以看出:

该函数必须是自动执行的,才能使返回正常工作。但是,由于它引用了画布,我不希望它立即加载。将自执行功能放入 document.ready() 会阻止我做

我应该怎么办?