javascript - 这两种 JavaScript 模式之间有什么区别吗?

标签 javascript design-patterns

查看一些 JavaScript 库和其他人的代码我看到了两种常见模式,我不知道使用其中一种是否有区别或优势。模式看起来有点像这样:

1.

var app = (function () {
    // Private vars

    // Module
    var obj = {
        prop: "",
        method: function () {}
    };

    return obj;
})();

2.

(function () {
    // Private vars

    // Module
    var obj = {
        prop: "",
        method: function () {}
    };

    window.app = obj;
})();

这些模式是否相同,或者其中一个比另一个有优势或不同用途?

提前致谢。

最佳答案

第二个假设在父作用域中存在一个名为 window 的对象,并在那里分配一个属性。

第一个将它留给调用者来进行分配,并且不依赖于定义的 window(它可能只在网络浏览器中)。

所以,我想说第一个肯定更好(更独立,更少依赖环境)。

关于javascript - 这两种 JavaScript 模式之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4871445/

相关文章:

c# - 访问者模式是将域枚举重构为类的最佳方式吗?

javascript - 从 iframe 的调用者页面更改 iframe 内容 css

javascript - 悬停图像时播放音频

JavaScript:模块模式差异

c# - IoC/DI 容器、工厂和运行时类型创建

c# - 类中应该包含什么方法

oop - MVC模式是否否定了其他设计模式?

javascript - Mongoose "Schema hasn' t 已注册”尝试填充时出错

javascript - VueJS v-for 渲染列表,尽管 v-if 评估为 false

Javascript - 延迟 Promise 解析