gpt4 book ai didi

Javascript 'normal' 对象与模块模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:47:28 25 4
gpt4 key购买 nike

目前我正在开发一个大型 Javascript 应用程序(单页),我在网上搜索了一些最佳实践。大多数项目使用模块模式,因此对象不会污染全局命名空间。此时我使用普通对象:

function LoginModel(){
this.model = new MyModel();

this.getModel = function(){
return this.model;
};
}

这是可读的并且易于维护(我的意见)。是仅仅因为命名空间而使用模块模式更好,还是它具有我不知道的其他优点(计数器内存泄漏,...)?此外,我已经将文件拆分成一个很好的 MVC 模式,并在需要时销毁每个对象(防止内存泄漏)。所以主要问题是:就我而言,我是否需要使用模块模式?

模块模式:

var LoginModel = (function(){
var model = MyModel;

function getModel(){
return model;
};

return {
getModel: getModel
};
});

最佳答案

模块模式更适合整体代码组织。它让您拥有该范围私有(private)的数据、逻辑和函数。

在您的第二个示例中,getModel() 是从外部获取模型的唯一 方法。除非显式暴露,否则在模块中声明的变量是隐藏的。这可能是一件非常方便的事情。

除了有点复杂之外,实际上没有任何缺点。您只会获得更多组织和封装选项。

在我的模型变得复杂到需要更多结构和一些私有(private)范围界定之前,我会使用普通对象。当你达到那个点时,将它重新定义为一个揭示模块而不破坏任何使用它的代码是微不足道的。

关于Javascript 'normal' 对象与模块模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23404198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com