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