Почему .call и .apply медленнее, чем прямой вызов функции в JavaScript? - PullRequest
24 голосов
/ 18 ноября 2011

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

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

1 Ответ

7 голосов
/ 18 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...