Показать сообщение отдельно
  #22 (permalink)  
Старый 06.12.2021, 06:44
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,719

Я попытался повозиться с твоим скриптом, адаптировать его для собственных нужд. Работает нормально. Но столкнулся с небольшой неувязкой.
return func.call(this, findArgs(args, bigList));
предполагает, что функция может быть и методом.
Но super из нее не вызовешь.

С проверками типов тоже приходится быть очень аккуратным
[
{par1: isObject, 'par2?': isArray},
{par2: isArray}
]

isObject просто как o => typeof o === 'object' не сделаешь
Надо o => typeof o === 'object' && !Array.isArray(o)
Ну и других подобных ситуаций хватало. Поэтому проверки типов иногда становятся довольно громоздкими

Меня такие коды бросают в дрожь из-за цены вызова функции по времени.
Провел тестирование
Вызывал 1 000 000 раз обычную функцию (но пустую) и делал вызов с такими проверками параметров.
С одной стороны разница по времени в 50 раз!
С другой стороны 0.6 сек на миллион вызовов.

Последний раз редактировалось voraa, 06.12.2021 в 06:59.
Ответить с цитированием