Давайте посмотрим на это дело
const a = "a"
Object.isFrozen(a) // true
const b = new String("b")
Object.isFrozen(b) // false
Из этого раздела мы можем увидеть, что String
объекты не обязательно заморожены.Только эти строковые литералы заморожены (я думаю, это потому, что они совместно используются в пуле. Если они не заморожены, вы можете создать свойства в одном месте, чтобы повлиять на код в другом месте). Однако явно созданные объекты String
не зависят отбассейн, таким образом, не заморожен.