Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как выглядит объект который создает эта функция? (https://javascript.ru/forum/misc/78257-kak-vyglyadit-obekt-kotoryjj-sozdaet-ehta-funkciya.html)

nathan111777 16.08.2019 12:06

Как выглядит объект который создает эта функция?
 
Стараюсь разобраться в объектах. Так сказать "залезть под капот" языка Javascript.
Говорят что функция является объектом. А вот если например создаем функцию она создает новый неявный объект? или правильнее сказать что сама функция уже есть явный обьект?

Например:
function show() {
var x = 1;   
var y = 2;
  document.getElementById("r").innerHTML = x + y;
}

show();



1) эта функция создает новый неявный объект? Если да, то как выглядит этот неявный объект? Или функция просто есть свойством обьекта?
2) если функция создает объект то тот обьект находится всередине глобального обьетка window? или нет? как это выглядит?

MallSerg 16.08.2019 13:31

Цитата:

Говорят что функция является объектом
Не верно

Функция это функция не нужно ничего придумывать и усложнять.
Прототипом для функции является Object срабатывает механизм наследования в JS свойства и методы объекта будут доступны.

;alert(typeof(function(){}));

;alert(typeof(function(){}).prototype);


Функция это уже сложный тип данных в JS
Для сложных типов не создаются временные объекты это и отличает их от простых.
Ну еще операторы присваивания и сравнения работают по разному для для простых и сложных типов данных.
var x = 1;
var y = function (){};
alert ( x.prototype );
alert ( y.prototype );

nathan111777 16.08.2019 14:31

но учебник говорит что функция это обьект:
https://ibb.co/MPgJY8R
и еще одна документация:
https://ibb.co/Qn2SYM0

ksa 16.08.2019 14:39

Цитата:

Сообщение от nathan111777
но учебник говори что функция это обьект

Если объектом считать некую сущность с набором свойств и методов - да объект.
Т.е. нужно более конкретнее подойти к самому понятию "объект".

ksa 16.08.2019 14:57

nathan111777, например в новом учебнике такого нет... :D
https://learn.javascript.ru/function-basics
Даже слово "объект" не встречается совсем.

nathan111777 16.08.2019 15:10

тогда держите спецификацию:
https://www.ecma-international.org/e....1/#sec-4.3.24

ksa 16.08.2019 15:23

Цитата:

Сообщение от nathan111777
тогда держите спецификацию

И что там должно насторожить? :blink:

Вот тебе дали вполне исчерпывающий ответ...
Цитата:

Сообщение от MallSerg
Функция это функция не нужно ничего придумывать и усложнять.


Rise 16.08.2019 15:27

Цитата:

Сообщение от nathan111777
Так сказать "залезть под капот" языка Javascript.

Залезть можно здесь, если так уж интересно про ядро, и вообще там по сайту много о теоретическом javascript.

nathan111777 16.08.2019 20:48

Цитата:

Сообщение от Rise (Сообщение 511790)
Залезть можно здесь, если так уж интересно про ядро, и вообще там по сайту много о теоретическом javascript.

Спасибо большое!

Aetae 16.08.2019 22:16

Цитата:

Сообщение от nathan111777 (Сообщение 511777)
но учебник говорит что функция это обьект:

Правильно. Функция не создаёт объект, она сама по себе объект.)
Впрочем создать объект она тоже может, при использовании оператора new.


Часовой пояс GMT +3, время: 00:46.