Здравствуйте, Pauel, Вы писали:
P>new BaseClass — выделение памяти, инициализация
P>BaseClass.Counter — лукап
P>++ — сравнимо с += в основном цикле
P>this.Value — еще один лукап
Ты не понял или не вникал в написанное. Создание объекта не просто приводит к замедлению, а меняет время выполнения (
и только при использовании переменной для суммы) на противоположный. При вычислении суммы через
свойство объекта о.sum различия во времени минимальны. Повторю укороченно, если код проигнорировал:
// без new BaseClass()
let sum = 0;
for (let i = 0; i < 100_000_000; i++)
sum += i;
// и
let o = {sum: 0};
for (let i = 0; i < 100_000_000; i++)
o.sum += i;
// против следующего, но с добавлением new BaseClass()
let sum = 0;
for (let i = 0; i < 100_000_000; i++) {
new BaseClass();
sum += i;
}
// и
let o = {sum: 0};
for (let i = 0; i < 100_000_000; i++) {
new BaseClass();
o.sum += i;
}
}
вычисление переменной let sum c new BaseClass становится дороже чем аналогичное, но через o.sum, а без new BaseClass() наоборот.