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