Показать сообщение отдельно
  #13 (permalink)  
Старый 08.01.2021, 01:58
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

>>
Сообщение от denis_alekss
Сообщение от MallSerg
>>
И изучи из чего состоит полученный объект.

ff = function fun (){};
f = new ff();

console.dir(f);
Этот объект состоит из:

1. функции fun
2. конструктора fun
3. __proto__ ссылается на функцию-класс с помощью которого он был создан, то есть на функцию fun.
4. Сама функция fun ссылается на Object.prototype
Я привет пример кода выполнив который в консоли браузера ты должен был получить в ответ объект.

Приведенный пример кода состоит из трех строк каждая из которых является выражением.
1. используется функциональное выражение (function fun (){})
для создания функционального объекта и присваивание(взятие ссылки) его переменной ff.
ff хранит ссылку на функциональный объект который можно вызвать как функцию используя эту ссылку ff.
2. Вызов по ссылке(ff) функции(fun) как конструктора для нового объекта типа (fun) и сохранение полученного нового объекта в переменную f
3. команда консоли вывести объект на который ссылается переменная f.

>> Конструктор как выглядит здесь?
Здесь в роли конструктора выступает функция fun (function fun (){}; )
Любой функциональный объект в JavaScript может быть использован как функция конструктора.
В JavaScript нет разницы между функциями и конструкторами.

>> Он создается для потомков?
Для создания потомков конструктор не нужен т.к. ему нечего и незачем конструировать.
Наследникам для получения наследства в виде свойств и методов достаточно просто стать наследниками.
т.е. указать ссылкой на свой прототип.

ИМХО твоя проблема в том что абстракции и понятия используемые в компилируемых языках где требуются описания различных классов объектов и описанию по их построению(конструкторы/деструкторы) ты пытаешься использовать в JavaScript и приходишь к противоречиям и непоняткам ставящим тебя в тупик непонимания.
JavaScript это другой язык построенный на отличающихся абстракциях и понятиях.
Ответить с цитированием