revealing-module-pattern相关内容
我最近熟悉了揭示模块模式(RMP),我读了很多关于它的文章。 它看起来是一个非常好的模式,我想开始在一个大项目中使用它。在我使用的项目中:jQuery、KO、Required JS、jQuery Mobile、JayData。在我看来,它将非常适合KO视图模型。 具体地说,我想使用THIS版本。 我找不到使用此模式的缺点,是不是因为没有缺点(我觉得很难相信)? 开始使用之前
..
我正在学习 JavaScript,并且遇到了以下结构: var Test = (function () {函数 func1() {//做一点事.....}函数 func2() {//做一点事.....}函数 func3() {//做一点事.....}返回 {功能1:功能1,功能2:功能2,功能3:功能3};})(); 我想知道返回块在做什么.这是一个非常常用的 JavaScript 结构吗?请
..
我想使用 Knockout.js 为我的 REST 服务构建一个客户端.我想通过不同的 url 访问很多存储库 - 所以我想出了这个使用 Revealing-Prototype-Pattern 的解决方案.我的问题:我不知道如何将 ItemsProperty 与从我的服务中收到的“数据"进行映射. var Repository = function (url) {this.Url = url;t
..
我最近正在阅读学习 JavaScript 设计模式这本书.我不明白的是模块模式和揭示模块模式之间的区别.我觉得他们是同一个东西.谁能举个例子? 解决方案 至少有三种不同的方式来实现模块模式,但揭示模块模式是唯一具有正式名称的模块模式后代. 基本模块模式 模块模式必须满足以下条件: 私人成员住在封闭区. 公共成员在返回对象中公开. 但是这个定义有很多歧义.通过以不同
..
使用显示模块模式,如何为非静态私有变量提供直接访问?这就是我所拥有的: var M = function () { var obj = {}; var arr = []; var change = function () { obj = {"key":"if I see this, O is a reference to obj"};
..
我在结合javascript回调和显示模块模式时遇到问题. 我想做的是使用carsData.getCars()函数方法返回HTTP响应文本. 基本上我想做的是: 将数据从xhr.onreadystatechange函数返回到私有getData函数 将数据从getData函数返回到公共getCars函数(或调用getCars函数返回值) 我知道它可以与同步AJAX模式一起使用,但
..
有什么办法可以让Javascript类扩展通过显示模块模式创建的对象?我尝试了以下代码,但是是否可以实现相同的目的? sv.MergeQuestionViewModel = function () { this = sv.QuestionDetailViewModal(); this.init($("#mergeQuestionModel")); }; sv.Quest
..
我的显示模块中有以下代码,但是我不确定如何声明/定义imageListItem,它严格来说是DTO,实际上并不需要任何信息隐藏.我是否正确定义了该对象? var imageListItem = function() { var _title; Object.defineProperty(this, "title", { get: function () { r
..
我试图了解(公开)模块模式中的 public`属性. Carl Danley"揭示模块模式" 是: 明确定义的公共方法和变量,从而提高了可读性 让我们看一下这段代码(小提琴): var a = function() { var _private = null; var _public = null; function init() { _p
..
我有一个非常简单的示例,无法正常工作. jsfiddle: http://jsfiddle.net/ThomasDeutsch/8hzhp/3/ // My Model function Customer(id, name, lastname) { this.Id = ko.observable(id); this.Name = ko.observable(name);
..
我想使用Knockout.js为我的REST服务构建客户端. 我有很多存储库,我想通过不同的URL访问-所以我想出了使用Revealing-Prototype-Pattern的解决方案. 我的问题:我不知道如何使用我从服务中收到的“数据"来映射ItemsProperty. var Repository = function (url) { this.Url = url; th
..
我有一个脚本,我想分开到多个模块。 例如,将我的所有鼠标事件放在另一个模块中(mouseup,mousedown等)。 我使用一堆全局变量来跟踪所有我的对象在屏幕上。鼠标模块需要访问这些变量并更改它们。我意识到我可以揭示其他模块所需的每个变量,但它们无法改变它们。 如何使用Javascript实现最佳效果?我目前使用揭示模块模式,并且我读到我必须使用getter和setter(例如我
..
我想将我编写的一些JavaScript代码转换为TypeScript。作为一名JavaScript开发人员,我对TypeScript语法和思维方式都很陌生。 令我头疼的是我很难转换一些将显示模块模式用于TypeScript的代码片段。 以下是一个例子: // JS Code var obj; //代码... (function(){ 函数myFunction(){
..
对于模块模式,我做的事情如下: (function(namespace){ / /吨代码 // blabla })(window.myGlobalNamespace); 如何拆分代码?我可以想到几种方法,比如使用命名空间的层次结构,或者通过 window.myGlobalNamespace.additionalFunc = function(){// blabla}
..
我在这个Javascript问题上花了相当多的时间(你可以告诉我我是一个JS菜鸟): 写一些写得好的Javascript代码
..
在关于立即调用的函数表达式的Udacity课程中(关于提供的代码片段),它说: 正在返回的函数结束(即捕获) hi变量。这允许myFunction维护一个私有的,可变的 状态,该状态无法在函数外部访问!更重要的是: 因为表达的函数被立即调用,IIFE很好地将 包含在代码中,这样我们就不会污染全局范围。 我很难理解调用匿名函数会立即做什么来阻止变量 hi 从“污染全球范围”开始,
..
我正在学习JavaScript并遇到以下结构: var Test =(function(){ 函数func1(){ //做某事..... } 函数func2(){ //做点什么..... } 函数func3(){ //做某事..... } 返回{ func1:func1, func2:func2, func3:func3 }; })();
..
此模式的缺点是,如果私有函数引用公共函数,则如果需要补丁,则无法覆盖该公共函数。这是因为私有函数将继续引用私有实现,并且该模式不适用于公共成员,仅适用于函数。 链接到上面引用的揭示模块模式 解决方案 比较使用创建的对象一个对象文字,由一个由Revealing Module Pattern创建的。 这是一个作为对象文字创建的。 function makeGreeter(n
..
我正在重构一些我们拥有的Javascript代码,其中包括改变它以利用显示的模块模式。代码看起来很整洁,它的工作正常,但在大纲视图中我看不到功能。我看到顶级命名空间var为var,但是您无法扩展它以查看其中的函数。 让我们说代码看起来像这样: p> function myFunc1(){} function myFunc2(){} / pre> 在这种情况下,您将
..
使用这个好的做法,而不是显示模块模式 .. 。 var MyModule =(function(){ function Method1(){alert('method1');} 函数Method2(){Method1(); alert('method2');} 函数Method3(){Method1(); alert('method3');} 函数Method4() {Method
..