The Revealing Module Pattern (RMP) disadvantages(揭示模块模式(RMP)的缺点)
本文介绍了揭示模块模式(RMP)的缺点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我最近熟悉了揭示模块模式(RMP),我读了很多关于它的文章。
它看起来是一个非常好的模式,我想开始在一个大项目中使用它。在我使用的项目中:jQuery、KO、Required JS、jQuery Mobile、JayData。在我看来,它将非常适合KO视图模型。
具体地说,我想使用THIS版本。
我找不到使用此模式的缺点,是不是因为没有缺点(我觉得很难相信)?
开始使用之前应该考虑什么?
推荐答案
我读了@nemesv向我推荐的那篇文章(感谢:),我认为还有一个没有提到的缺点,所以我想我应该在这里添加它以供参考。下面是这篇文章的引语:
缺点
此模式的一个缺点是,如果私有函数引用 作为公共函数,如果修补程序不能重写该公共函数 是必要的。这是因为私有函数将继续 引用私有实现,并且该模式不适用于 公共成员,仅限于函数。 引用私有变量的公共对象成员也 以上述无补丁规则说明为准。 因此,使用显示模块模式创建的模块 可能比使用原始模块创建的模块更脆弱 模式,所以使用时应小心。
和我的附加内容:
您不能对此模式使用继承。例如:
var Obj = function(){
//do some constructor stuff
}
var InheritingObj = function(){
//do some constructor stuff
}
InheritingObj.prototype = new Obj();
InheritingObj.prototype.constructor = InheritingObj;
这是一个简单的js继承示例,但是在使用Revealing Prototype Pattern(存档的here)时,您需要这样做:
InheritingObj.prototype = (function(){
//some prototype stuff here
}());
这将覆盖您的继承。
这篇关于揭示模块模式(RMP)的缺点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:揭示模块模式(RMP)的缺点
基础教程推荐
猜你喜欢
- 在for循环中使用setTimeout 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 动态更新多个选择框 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01