【发布时间】:2014-06-30 10:37:36
【问题描述】:
直到现在,我都使用显示模块模式来构建我的 Javascript,如下所示:
var module = (function() {
var privateVar;
// @public
function publicFunction( ) {
}
return {
publicFunction: publicFunction
}
})();
虽然此代码按预期工作,但我最近阅读了一篇文章,如果您有多个实例,此模式会使用大量内存,并且与其他模式相比它存在一些速度问题。因为我喜欢使用这种模式,所以我搜索了没有所有这些“问题”的类似模式,并且遇到了 Revealing Prototype Pattern。据我所知,JavaScript 的 Prototype 有更好的内存管理。
现在我想知道使用显示原型模式是否更快/更好地记忆? This benchmark 让我感到惊讶,因为模块模式似乎要快得多。有什么理由吗?
另外,我不知道如何使用 Revealing Prototype Pattern 拥有多个实例(与上面的 Revealing Module Pattern Fiddle 相比):
var prototypeModule = function( el ) {
this.init( );
};
prototypeModule.prototype = function () {
var privateVar;
// @public
function init( ) {
}
return {
init: init
}
}();
我做错了什么?
【问题讨论】:
-
如果您想了解有关原型和构造函数的更多信息,可以查看此答案。最后是指向特定于实例的受保护成员的实现的链接。 stackoverflow.com/questions/16063394/…
-
如果您喜欢显示模块模式,您也可以尝试使用最终模块模式来构建您的代码:github.com/tfmontague/definitive-module-pattern
标签: javascript prototype revealing-module-pattern