Задать вопрос

Непонятный момент в javascript (поведение функции)

function foo() {
  return 'qwerty';
}

foo.x = 'y';

console.log(foo);     // { [Function: foo] x: 'y' }
console.log(foo.x);  // 'y'

Как это вообще работает?
  • Вопрос задан
  • 2744 просмотра
Подписаться 5 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 2
linoleum
@linoleum
Функции - это объекты, можно добавлять им свойства и методы как любому другому объекту.
В чем проблема?)
Ответ написан
Комментировать
p00h
@p00h
Фехтовальщик-стропальщик
Пригласить эксперта
Ответы на вопрос 2
ScorpLeX
@ScorpLeX
Вы хотите получить что, qwerty?
Тогда стоит вызывать foo как функцию, console.log(foo()); // 'qwerty'
Вполне логичное поведение.
Ответ написан
Комментировать
Anonym
@Anonym
Программирую немного )
В javascript функция это объект со скрытым методом call. Соответственно, вы просто к тому же объекту добавили новый метод.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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