我想将 Snippet 1 重构为 Snippet 2。考虑到大小,我认为这里的性能不是一个很大的问题,但我想了解内存使用情况与此重构模块模式有关。
模块模式确保我只从 DOM 中提取我想要的数据一次,并且它还形成了一个迷你注册表模式,因为数据是私有的。
这两个片段都已经过测试并且基本上可以工作。
片段 1 // 用 SU 替换 SUUniverisals
var SUniversals = function () {
// Pull from Server
this.universals.path = document.getElementById('universals').getAttribute('data-path');
this.universals.load = document.getElementById('universals').getAttribute('data-load');
// Set Manually
this.universals.debug = false;
};
SUniversals.prototype.universals = {};
SUniversals.prototype.get = function( key ) {
return this.universals[ key ];
};
SUniversals.prototype.set = function( key, value ) {
this.universals[ key ] = value;
};
片段 2
var SU = ( function ()
{
// private SU.get('load');
var universals = {};
universals.path = document.getElementById('universals').getAttribute('data-path');
universals.load = document.getElementById('universals').getAttribute('data-load');
universals.debug = false;
// pubulic
var publik = {};
publik.get = function( key )
{
return universals[ key ];
};
publik.set = function( key, value )
{
universals[ key ] = value;
};
return publik;
}());