Javascript 静态方法与 prototypal/instatiated 方法的性能对比

Javascript static methods vs prototypal/instatiated methods on performance

我一直在 Javascript 中尝试使用静态方法。我没有让对象从原型继承,而是更努力地使用鸭子类型。

var Controller = {};
Controller.getData = function() {//return data};

// and then in use:
var page = route.getPage();
require([page], function(Controller) {
    Controller.getData();
});

我可以通过使用 Controller 原型创建新对象来实现同样的目的:

function Controller() {};
Controller.prototype.getData = function() {//return data};

// and then in use:
var page = route.getPage();
require([page], function(Controller) {
    var controller = new Controller();
    controller.getData();
});

我的直觉是静态方法会更快,但我没有头绪。总的来说,这两种方法之间的性能差异是什么?

TLDR;基本上是 this 问题,但 Javascript.

编辑:因此当您实例化 class 与调用 "static" 版本时存在一些性能差异,但差异并不能真正保证您对代码进行任何更改(过早优化),除非您看到实际速度变慢。

如我设置的基本 jsperf 测试所示,在性能方面确实没有太大区别。您应该根据是否希望上下文 (this) 引用您的基础 class 来做出决定。