Javascript 模块声明 - 性能

标签 javascript performance

我正在尝试在以下编写 JS 模块的方法之间做出决定。在内存和 CPU 上编写模块有何影响?第二个会占用更多浏览器内存吗?

使用函数声明

function MyModule () {
    this.getOperation1 =  operation1;
    function operation1() {
        return "XYZ"
    }
}

使用变量定义

 var MyModule = {
     getOperation1: function() {
        return "XYZ"
     }
  }

最佳答案

在内存方面,它们大约相同 - 都创建一个对象。

但是:

  1. 您只能将 new 与基于函数的模块格式一起使用。后者仅创建单个对象,而不是可用于创建其他实例的构造函数。

  2. 使用函数,您可以将私有(private)局部变量包含在作用域中。

但是,在大多数情况下,更好的方法是:

function MyModule () {
}

MyModule.prototype.getOperation1 = function() {
    ...
}

这确保如果您创建多个实例,它们都只共享 getOperation1 函数的一个副本。

也就是说,如果您想要做的只是为函数命名空间,并且它们不会自然地形成“对象”(在 OOP 意义上),那么您也可以使用对象字面量语法。

关于Javascript 模块声明 - 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10701869/

相关文章:

javascript - Nodejs API 决定是创建还是更新

javascript - jquery 链接在下一页加载之前单击切换图像

objective-c - AFNetworking 并发 Http 请求

c# - 为什么添加不必要的 ToList() 会大大加快此 LINQ 查询的速度?

python - 我怎样才能更有效地编写这个解决方案?

javascript - Firebase Storage 和 PhoneGap - 发送 Img 元素中的文件

javascript - jquery 初学者 - 按时间启动的功能

javascript - !() 在 JavaScript 中是什么意思

.net - F#中的数组遍历

mysql - SQL查询优化(时间)