问题标签 [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 投票
1 回答
829 浏览

javascript - 如何在显示原型模式中分配事件?

我正在尝试实现显示模块模式。我需要为其中一个元素分配一个事件处理程序,这个事件处理程序是我在原型中定义的一个函数,但我得到this.trigger is not a function error。

这是我所做的:

我是这样称呼它的:

0 投票
2 回答
734 浏览

javascript - 为什么我们在显示模块模式中使用自执行函数?

多年来,我一直在积极使用揭示模块模式,但有一些事情我想更深入地了解。据我了解,自动执行功能的潜在好处是匿名性和自动执行,在这种特定模式中,这两者似乎都没有必要/未使用。我不明白的另一件事是,在下面的场景中,可以将函数 Init 包装在 SocialMedia 函数()中,即嵌入式函数,自执行函数似乎是 JS 中非常独特的构造,是我们可以将属性值分配给自执行代码块,这不奇怪吗?

0 投票
3 回答
7851 浏览

javascript - 在显示模块模式中公开私有变量

我正在尝试实现显示模块模式,但我无法公开修改后的私有属性。

0 投票
2 回答
659 浏览

javascript - 使用 jQuery 确定“显示模块模式”模块的范围

假设我有这个模块,我希望它自行初始化并附加到它的范围内。像这样:

现在,问题是,这self总是window. 我不想要那个。我希望它成为 jQuery 调用和加载它的范围$.getScript(),如下所示:

有没有办法破解这个?

0 投票
4 回答
7329 浏览

javascript - 使用显示模块模式时,如何在 Eclipse 中查看大纲?

我目前正在重构我们拥有的一些 Javascript 代码,除此之外,我已经对其进行了更改以利用显示模块模式。代码看起来更整洁,工作正常,但我在大纲视图中看不到这些功能。我将顶级命名空间 var 视为 var,但您无法扩展它以查看其中的函数。

假设以前的代码看起来像这样:

在这种情况下,您可以在大纲视图中看到这两个功能。但是如果你把它改成这样:

然后大纲视图只向您显示 myNamespace 变量。我尝试过寻找,但找不到真正能正确显示层次结构的视图。有谁知道查看这个的方法,或者是 Eclipse 无法做到这一点的情况?

0 投票
1 回答
1545 浏览

design-patterns - Knockout.js:View-Model 函数返回代码?

感谢John Papa 的精彩教程。我尽力使用 knockout.js 为我的 ViewModel 实现显示模块模式

这是一个非常简单的例子:

  • 有 2 个客户对象。
  • 从两个对象中添加 ID 并返回它。

http://jsfiddle.net/ThomasDeutsch/EHYfT/

不知何故,我得到的不是返回的值,而是执行的代码?我希望在屏幕上看到结果“3”:)

我究竟做错了什么?

0 投票
2 回答
1501 浏览

function - 函数参数在 knockout.js 中未定义

我正在使用 Revealing Module Pattern 在我的 knockout.js 代码中获取一些结构。这是一个非常简单的示例目标:返回 Object 的 Name-Property 的值。问题:函数参数 x 未定义。

http://jsfiddle.net/ThomasDeutsch/8hzhp/

这里到底有什么问题?请帮我解决这个问题。

0 投票
2 回答
3027 浏览

javascript - Knockout.js:函数参数未定义

我有一个非常简单的例子,它不起作用。

jsfiddle:http: //jsfiddle.net/ThomasDeutsch/8hzhp/3/

问题:参数(x)未定义

目标:返回被调用对象的名称属性 - 我想使用 x 作为属性,以便我可以使用任何具有可观察名称属性的对象调用此函数

代码说明:这是使用带有 knockout.js 的显示模块模式完成的。Name-property 是一个 ko.observable() - 所以需要 ()。

问题:为什么 x 未定义?

0 投票
1 回答
24250 浏览

mapping - Knockout.js 将 JSON 映射到 observable-array

我想使用 Knockout.js 为我的 REST-Service 构建一个客户端。我有很多我想通过不同的 url 访问的存储库 - 所以我使用 Revealing-Prototype-Pattern 提出了这个解决方案。我的问题:我不知道如何将 ItemsProperty 与我从我的服务收到的“数据”映射。

我认为问题出在:ko.mapping.fromJS(data, self.Items); 但我找不到正确的方法。
问题:我做错了什么?我找到了一个例子 - 我认为他们也在做同样的事情:http: //jsfiddle.net/jearles/CGh9b/

0 投票
1 回答
1236 浏览

javascript - 揭示模块模式(javascript) - 这不能访问私有方法

:我有一个用“显示模块模式”编写的 javascript 类:

正如您在“methodB”中的“this”中看到的那样,它不识别类的私有方法。

编辑: 我的意图是从公共类中调用一个辅助私有方法。在这个私人课程中,我需要“这个”。如果我直接从 'methodB' 调用 'methodA("a")'(没有 'that')我没有 'this'('this' 将是全局上下文)。解决方案将是: