Теперь, когда я тебе это все расписал, тебе стало понятней что я имел ввиду?
return result;
- это return из функции обработчика события this.openRequest.onsuccess
, а не из метода getActiveUser, из метода getActiveUser не получится вернуть result, так как когда он у Вас появится, метод getActiveUser будет давно завершен.А не нарушит ли этот метод принцип единственной ответственности - поиск юзеров, для которых нужно создать + непосредственно создание...
На мой взгляд, самое адекватное определение для сильной/слабой - это насколько сильно/слабо выражены типы в языке, т.е. насколько много проверок этих типов существует при осуществлении операций. Если вы можете обратиться к переменной одного типа, как к переменной другого типа, и компилятор/интерпретатор на это никак не прореагирует - это слабая типизация
могу процитировать Вики:даже те кто написал это в википедии сходятся со мной в точки зрения, что нет единого определения сильной и слабой типизации, что это комплекс из всех остальных классификаций систем типов, конечно включая явную/неявную типизацию, но не только ее.Languages are often colloquially referred to as strongly typed or weakly typed. In fact, there is no universally accepted definition of what these terms mean. In general, there are more precise terms to represent the differences between type systems that lead people to call them "strong" or "weak".
Во-первых: если ключи у вас строки - используйте объект без прототипа (Не скажу за все движки, но в v8 (node, chromium-based браузеры) под капотом и у объекта и у Map одна и таже структура данных - OrderedHashTable, так что разницы никакойObject.create(null)
) вместоMap
- работа с ним на порядок быстрее.