PS: и, да, я согласен, что оператор `.` в JS и `->` в С++ ведут себя похоже. Мой поинт был лишь о переменной и её поведении, а не об операторах к ней применяемым.
Так точно, именно отсутствие оператора `*` и мешает. Но, слава богу, у этой реализации есть настоящее имя, которое позволяет нам использовать именно его, избегая вещей вроде
«типа ссылки, но не можем изменять весь объект, только мутировать»
или
«типа указателя, но нет оператора его разыменования»
Кстати, можно было бы проверять пароль as-is, и триманный, если первый не подошёл. Тогда и странные люди с паролями в начале и конце не будут обижены, и копипастеры не будут раздражаться.
Нет никаких вспомогательных функций. Код пишется после теста, весь написанный код — пишется под влиянием тестов. Все приватные методы получаются в результате рефакторинга. Таким образом они уже автоматически протестированы.
«типа ссылки, но не можем изменять весь объект, только мутировать»
или
«типа указателя, но нет оператора его разыменования»
На указатель оно ещё меньше похоже.
Если пытаться быть до конца точным, то использованная в JS техника называется call by sharing
Опубликуйте её перевод, пожалуйста.
www.paknsave.co.nz/why-shop-at-paknsave/shopngo/
Я скорее из соображений того, что нет смысла делать пользовательский пароль слабее, чем он изначально был
Добавить фичу — это написать тест, который код должен пройти.
Выделили метод — сломали тесты. Починили тесты, и гарантии вернулись.