Существует (как минимум) три существенных преимущества использования встроенной функции вместо ее самостоятельной реализации:
(1) Скорость - встроенные функции обычно вызывают код более низкого уровня, предоставляемый browser (не в Javascript), и указанный код часто выполняется значительно быстрее, чем тот же код в Javascript.Полифилы работают медленнее, чем собственный код.
(2) Удобочитаемость - если другой читатель вашего кода увидит ['foo', 'bar'].join(' ')
, он немедленно узнает, что он делает, и как join
метод работает.С другой стороны, если они увидят что-то вроде doJoin(['foo', 'bar'], ' ')
, где doJoin
- ваша собственная реализация того же метода, им придется искать метод doJoin
, чтобы быть уверенным в том, что там происходит.
(3) Точность - что если вы допустили ошибку при написании своей реализации, но ошибка не сразу очевидна?Это может быть проблемой.Напротив, встроенные методы почти никогда не имеют ошибок (и, когда их обнаруживают, обычно исправляются).
Можно также утверждать, что нет смысла тратить усилия на решенную проблему.