Подтвердить что ты не робот

Почему .call и .pply медленнее, чем прямой вызов функции в JavaScript?

Мне интересно, эти результаты jsperf. Похоже, они показывают, что прямой вызов функции существенно быстрее, чем функция, называемая с .call или .apply. (Разница между .call и .apply удивила меня еще больше.) Не могли бы вы объяснить эти результаты?

Обновление: Вот jsperf, что кто-то оставил те тесты .apply без второго экземпляра массива.

4b9b3361

Ответ 1

Я предполагаю, что причина может зависеть от того, на каком интерпретаторе работает ваш код, но кажется, что обычные вызовы функций быстрее, потому что интерпретатор может использовать Inline Cache для доступа к свойствам.

Вы можете посмотреть здесь для получения дополнительной информации.