javascript中方法调用的性能执行和执行时间一致性之间的最佳折衷是什么?
我仍在学习 javascript,并且会为大多数事情使用原型(即此处的 Brendan Eich ),但我认为我从函数闭包中找到了更好的性能和一致性(我知道我可能过度优化了)。我一直在测试的一种原型模式:
function PrototypeA() {}
PrototypeA.prototype.a = 0;
PrototypeA.prototype.b = 0;
PrototypeA.prototype.someMath = function() {
this.a += 1;
this.b += 2;
};
var Test = new PrototypeA();
Test.someMath();
在阅读这篇(很棒的!)帖子后决定关闭基准。我正在转向的当前关闭模式:
var SubModule = new((function() {
var a = 0;
var b = 0;
var someMath = function() {
a += 1;
b += 2;
};
return function() {
this.someMath = someMath
};
})())();
我发现由于测试设置中的错误,例如在基准测试中调用构造函数或以导致不同范围遍历路径的方式调用方法,各种模式的许多基准测试都具有误导性。我只是想测试方法执行。
在本地进行了大量基准测试(benchmark.js 跨越许多不同的模式)之后,我提出了值得注意的模式:
我的发现似乎支持组织良好的闭包在执行时间上不会像其他类型的对象那样偏离(我松散地使用术语“类型”)。我意识到由于基准或设置上的任何数字或错误,我可能完全错了。
感谢您的关注!