Как jqeury.prototype.constructor оказался объект? Не понимаю, насколько я знаю, в конструкторе на прототипе должна быть функция-конструктор объекта.
То есть:func shit();
shit.prototype.constructor == shit;
И вот сижу наблюдаю на jquery и пытаюсь понять, как объект jquery при вызове его как функции работает как функция а при вызове методов на этой функции работает как объект. И вижу такую штуку:console.log(jq.prototype.constructor); // function (a,b){return new n.fn.init(a,b)} вроде все ок
console.log(jq.prototype.constructor.prototype==jq.prototype); // true как и ожидалось
console.log(typeof jq.prototype.constructor); // function
console.log(jq.prototype.constructor.ajax); // function (a,b){"object"==typeof a&&(b=a,a=void ........ КАК?!
Как отзываться на функцию как объект и как функция??

21 Авг 2019 в 07:08
214 +1
0
Ответы
1

jQuery использует прототипное наследование, поэтому конструктор объекта jQuery - это функция, которая создает новый объект jQuery.

Когда вызывается jQuery как функция, она создает новый объект jQuery и возвращает его. Этот объект имеет прототип, который содержит различные методы jQuery, такие как ajax. Поэтому можно вызывать методы на объекте jQuery, так как они определены на его прототипе.

В вашем коде, вы вызываете метод ajax на объекте jq.prototype.constructor, который фактически является функцией-конструктором объекта jQuery. Поэтому вы видите, что функция конструктора имеет метод ajax, определенный на его прототипе.

Таким образом, jQuery умело использует прототипное наследование, чтобы обеспечить гибкость и мощность при работе с объектами и методами.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир