eat*_*hil 5 javascript static-methods prototypal-inheritance
我一直在尝试在Javascript中使用静态方法。与其让对象继承自原型,不如使用鸭式输入。
var Controller = {};
Controller.getData = function() {//return data};
// and then in use:
var page = route.getPage();
require([page], function(Controller) {
Controller.getData();
});
Run Code Online (Sandbox Code Playgroud)
我可以通过使用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();
});
Run Code Online (Sandbox Code Playgroud)
我的直觉是静态方法会更快,但我不知道。通常,这两种方法之间的性能差异是什么?
TLDR;基本上这个问题,但对于Javascript。
编辑:因此,当您实例化类与调用“静态”版本时,存在一些性能差异,但这种差异并不能真正保证您对代码进行任何更改(过早优化),除非您看到实际减慢。
正如我设置的基本jsperf测试所示,性能上确实没有太大区别。您应该根据是否希望上下文 ( this
) 引用您的基类来做出决定。
归档时间: |
|
查看次数: |
2191 次 |
最近记录: |