Когда вы создаете несколько экземпляров MyClass, у вас будет только один экземпляр publicMethod в памяти, но в случае privilegedMethod вы создадите множество экземпляров, а staticMethod не будет иметь отношения к экземпляру объекта.
Вот почему прототипы сохраняют память.
Кроме того, если вы изменяете свойства родительского объекта, соответствующее свойство дочернего объекта не было изменено, оно будет обновлено.
Я могу что-то упустить, но вызов вашего API сделан только один раз, не ожидайте, что ваши данные будут обновлены, если вы не вызовете getUserProfile
снова. Когда вы обновляете, ваш getUserProfile
выполняется и получает обновленные данные, используя updateProfile
.