Ну ты переопределил дефолтную функцию
Ну спасибо, отец, всей семьей кланяемся)
понятно, что мы ее переопределили. Почему после крайнего вызова вызывается toString?
Ты вызываешь функцию, которая возвращает рекурсивно функцию Все что делает это функция - инкрементирует currentSum Чтобы тебе вернулся результаь нужно как то чтобы после последнего вызова тебе вернулась не функция, а currentSum Вот там и присобачили toString которая возвращает
Да я понимаю как оно работает, что оно возвращает значение через переопределение метода, я спрашиваю почему метод toString на функции срабатывает и возвращает значения, если он даже не вызывается, шо это за черная магия?
Это дичь работает и без toString
нет
Покажи скрин как ты это используешь с результатом плиз
вызов add(1)(2)(3) вернет 6
а сори это не мне
Да всё просто, функция add возвращает функцию addF которая возвращает саму себя. А когда ты приводишь addF к строке она возвращает currentSum
Алло, капитан, я понял как оно работает, я не понял почему метод вызывается.
Ну оно же выводится как-то
оно выводится из-за ебучего add(1)(2) == 3, == это приведение типов блят, он и вызывает метод
Так он объяснил тебе почему вызывается - потому что приводится к строке
у блять, а почему оно сука приводится к строке мне никто и не объяснил
потмоу что тустринг, ало
Ну естественно
ты сам и ответил — так захотел автор тестов, где-то в своём коде он твои результаты к строке прибавляет
Так а как ты вызываешь? В консоль лог выводишь?
я не вызываю, я писал, что у меня codewars задачка, к которой тесты идут.
Ты в куда результат вызова этой конструкции передаёшь? Может ты неявно к строке приводишь?
Ну вот.
Обсуждают сегодня