@Boris009

Что происходит со свойством класса при присвоении из вне?

Что у нас происходит со свойством, когда мы добавляем его в класс из вне?
Почему оно не доступно при инициализации экземпляра?

class Str {
   text = 'hello'
}

Str.word = 'word'

const s = new Str()

console.log(s.text)
console.log(s.word)
  • Вопрос задан
  • 20 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mvv-rus
Настоящий админ AD и ненастоящий программист
class - это функция. Которая выполняет роль конструктора класса при вызове через new. Если вы добавите к функции свойство, то у функции это свойство останется. А вот в созданный ей объект оно просто так не попадает. И не унаследуется - потому что в ссылку на протоип ([[Prototype]] и т.д.) созданного объекта операция new записывает содержимое свойства prototype функции-конструктора. Хотите добавить свойство в экземпляры class SomeClass - добавляте его в SomeClass.prototype. Или же добирайтесь через свойство constructor объекта-экземпляра (constructor.word) - вот оно указывает на функцию-конструктор.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы