Как 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 ........ КАК?! Как отзываться на функцию как объект и как функция??
jQuery использует прототипное наследование, поэтому конструктор объекта jQuery - это функция, которая создает новый объект jQuery.
Когда вызывается jQuery как функция, она создает новый объект jQuery и возвращает его. Этот объект имеет прототип, который содержит различные методы jQuery, такие как ajax. Поэтому можно вызывать методы на объекте jQuery, так как они определены на его прототипе.
В вашем коде, вы вызываете метод ajax на объекте jq.prototype.constructor, который фактически является функцией-конструктором объекта jQuery. Поэтому вы видите, что функция конструктора имеет метод ajax, определенный на его прототипе.
Таким образом, jQuery умело использует прототипное наследование, чтобы обеспечить гибкость и мощность при работе с объектами и методами.
jQuery использует прототипное наследование, поэтому конструктор объекта jQuery - это функция, которая создает новый объект jQuery.
Когда вызывается jQuery как функция, она создает новый объект jQuery и возвращает его. Этот объект имеет прототип, который содержит различные методы jQuery, такие как ajax. Поэтому можно вызывать методы на объекте jQuery, так как они определены на его прототипе.
В вашем коде, вы вызываете метод ajax на объекте jq.prototype.constructor, который фактически является функцией-конструктором объекта jQuery. Поэтому вы видите, что функция конструктора имеет метод ajax, определенный на его прототипе.
Таким образом, jQuery умело использует прототипное наследование, чтобы обеспечить гибкость и мощность при работе с объектами и методами.