Если я хочу вызвать функцию из прототипа массивов, например forEach, для коллекции, допустим NodeList, то какой вариант лучше избрать?
[].forEach.call(collection, function (element) {});
Array.prototype.forEach.call(collection, function(element) {});
Есть предположение что в первом случае отработает конструктор массива. Второй случай этим не страдает. Так ли это?
Согласно спецификации в первом случае будет происходить следующее:
forEach: failforEach в прототипе: OKВо втором случае:
ArrayprototypeforEachОднако стоит отметить, что в зависимости от конкретной реализации и различных оптимизаций оба примера могут быть сведены к одному и тому же.
Если провести замеры, то некоторые бразузеры могут показать незначительное различие, а некоторые, например хром, показывают, что различие в размере погрешности.
Поэтому на вопрос: какой способ лучше выбрать? можно дать ответ: из приведенных - любой.
Кроме того, для итерации по NodeList можно воспользоваться недавно добавленным методом forEach напрямую.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники