Показать сообщение отдельно
  #3 (permalink)  
Старый 29.09.2019, 22:12
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от alexsm993
вызов new Function()/Function() вернет объект,
Вызов Func() без new не возвращает объект. Не используй для именования слово Function, даже в объяснениях, это встроенный конструктор, как Object, Array и тд, что может ввести в заблуждение.
Сообщение от alexsm993
вернет объект, для которого прототипом изначально является ф-к.
Вернет объект у которого __proto__ равно Func.prototype. А сама ф-к там находится в свойстве __proto__.constructor, Func.prototype.constructor.
function User() {}
console.log(User == User.prototype.constructor);
console.log(User == new User().constructor); // __proto__.constructor

Сообщение от alexsm993
ф-к имеет скрытое свойство prototype, значением которого является объект с полем конструктор.
Оно никакое не скрытое, его можно перезаписать в любой момент и оно всегда есть у функции независимо от вызова. Раньше давно скрытым считалось __proto__, но сейчас и его можно перезаписать напрямую. Например, можешь посмотреть здесь, как в jquery осуществляется подмена прототипа.

Последний раз редактировалось Rise, 29.09.2019 в 22:33.
Ответить с цитированием