@georgedubinsky8888

Функция в JS это объект?

Задаюсь вопросом функция это объект или нет? Нет однозначного ответа, спрашивал у многих, но мнения расходились,
одни говорят что функция это объект а другие говорят что не считают функцию обьектом для себя, одни говорят что функция специальный тип обьекта а другие что прототипом для функции являеттся является обьект а сама функция не является обьектом и т.д....(
Что говорит документация:

https://learn.javascript.ru
5d5fa596bd649387538704.jpeg
https://developer.mozilla.org:
5d5fa59f7b155861351198.jpeg

Тоесть если верить документации функция есть обьект.

Но я для интереса написал функцию и вывел ее:
function show() {
    alert(this.message);
}
console.log(show);


но никакого обьекта я не увидел там:
5d5fa666465d9444199864.jpeg

если б он был то должно было бы быть что то похожее на это но с другими свойствами и значениями:
5d5fa740e8969682197828.jpeg

Но такого нет...
Функция в JS это объект или нет?
  • Вопрос задан
  • 2604 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Давайте посмотрим:

(() => {}) instanceof Object // true

Ну да, объект. Кто бы мог подумать.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Но я для интереса написал функцию и вывел ее:
...
но никакого обьекта я не увидел там


Проблема исключительно того, как браузер показывает вывод console.log. Стандарта нет и разные браузеры показывают то, что их разработчики посчитали полезным/удобным. Попробуйте лучше console.dir(function() {}).

В отличие от примитивных значений, в функцию можно добавить свои поля.
function a () {};
a.b = 42;
console.log(a.b);


Функции передаются по ссылке.

У функций есть методы, например bind, apply и call.

Функция это специальный объект, у которого определен внутренний метод [[Call]].
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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