Однако в последней строке для вызова create нам уже нужен объект MyClass (не так ли?).
Нет, последняя строка вызывает .create()
для объекта-компаньона из MyClass
. Сопутствующий объект является экземпляром отдельного класса (это не MyClass
) и инициализируется до его первого использования, поэтому вам не нужен экземпляр MyClass
для вызова .create()
.
Обратите внимание, что синтаксически .create()
вызывается для имени класса MyClass
, а не для обычного выражения, подобного вызову конструктора MyClass()
или переменной myClass
.