我一直在尝试在 Javascript 中使用静态方法。我没有让对象从原型(prototype)继承,而是更加努力地使用鸭子类型。
var Controller = {};
Controller.getData = function() {//return data};
// and then in use:
var page = route.getPage();
require([page], function(Controller) {
Controller.getData();
});
我可以通过使用 Controller 原型(prototype)创建新对象来实现同样的目的:
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。
最佳答案
编辑:因此,当您实例化类与调用“静态”版本时在性能上存在一点差异,但这种差异并不能真正保证您对类进行任何更改代码(过早优化),除非您看到实际速度变慢。
如基本 jsperf 中所示测试我设置,在性能方面确实没有太大区别。您应该根据是否希望上下文 (this
) 引用您的基类来做出决定。
关于Javascript 静态方法与性能上的原型(prototype)/实例化方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30403241/