jack_azizov
@jack_azizov

Что позволяет записывать в функции статические методы?

Доброго времени суток. Подскажите пожалуйста почему в JS мы можем записывать методы статические для функции ?
Интересует именно "подкапотная" работа, что позволяет нам писать
const a = () => {}
a.age = 99


Это связано с тем что Function.prototype.__proto__ === Object.prototype ? Если да, объясните чуть обширнее пожалуйста.
  • Вопрос задан
  • 78 просмотров
Решения вопроса 2
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Воспользуюсь спорным штампом и отвечу: так происходит, потому что "в JS всё - объект". Соответственно, как объектам, мы можем назначать свойства.
С примитивами всё несколько сложнее. Мы вроде бы тоже можем назначить им свойство, но это иллюзия. Когда мы делаем подобное с примитивами, например строкой, то вызывается её конструктор String(), а когда операция "под капотом" завершается, то мы снова получаем примитив, таким образом, ошибки назначения свойства не возникает, но и свойство недоступно.

Это если сжато.
Подробно объяснять не быстро. Скорее всего Вам тут посоветуют почитать документацию, спецификацию. Я предложу почитать серию книг You Dont Know JS. Можно нагуглить перевод многих глав из этой серии книг.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Динамическое наследование.
Оно применимо к любому непримитиву.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы