gpt4 book ai didi

javascript - 执行一致性和性能的原型(prototype)或闭包?

转载 作者:数据小太阳 更新时间:2023-10-29 05:02:42 25 4
gpt4 key购买 nike

<分区>

javascript 中方法调用的高性能执行和执行时间一致性之间的最佳折衷是什么?

我仍在学习 javascript 并将对大部分内容使用原型(prototype)(即 Brendan Eich here ),但我认为我从函数闭包中发现了更好的性能和一致性(我知道我可能过度优化了)。我一直在测试的一种原型(prototype)模式:

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();

看完这篇文章后决定(太棒了!)post基准关闭。我正在转向的当前关闭模式:

var SubModule = new((function() {
var a = 0;
var b = 0;
var someMath = function() {
a += 1;
b += 2;
};
return function() {
this.someMath = someMath
};
})())();

我发现许多不同模式的基准测试由于测试设置中的错误而产生误导,例如在基准测试中调用构造函数或以导致不同范围遍历路径的方式调用方法。我只是想测试方法执行情况。

在本地进行大量基准测试(跨许多不同模式的 benchmark.js)之后,我提出了值得注意的模式:

Jsperf Here

我的发现似乎支持组织良好的闭包在执行时间上不会像其他类型的对象那样偏离(我随意使用术语“类型”)。我意识到由于基准或设置上的任何数字或错误,我可能完全错了。

感谢您的关注!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com