Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Почему jQuery является одновременно функцией и объектом? (https://javascript.ru/forum/jquery/15117-pochemu-jquery-yavlyaetsya-odnovremenno-funkciejj-i-obektom.html)

FINoM 14.02.2011 01:02

Почему jQuery является одновременно функцией и объектом?
 
Сабж.
Например, можно сделать так:
jQuery(string || jQuery || node) //функция
А можно сделать так:
jQuery.isArray(var) //объект

Как повторить подобный эффект?

Gvozd 14.02.2011 01:28

читайте основы.
практически все в JavaScript(кроме примтивных объектов) является объектами.
var a = function(){alert('qwe')};// кажется функция
a.q=5;// фиг там, уже объект
a();
alert(a.q)

FINoM 14.02.2011 02:29

Основы читал, но этого момента не встречал. Странная логика. Почему же тогда:
var a = {};
a.q=5;
a = function(){alert('budubudu')};
a();
alert(a.q))
a.q == undefined?

Можно ссылку на статью, описывающую поведение кода, приведенного тобой выше?

Gvozd 14.02.2011 02:44

Цитата:

Сообщение от FINoM
Можно ссылку на статью, описывающую поведение кода, приведенного тобой выше?

это самые основы, и вы допускаете весьма глупые ошибки
var a = {};// переменной a назначен пустой объект
a.q=5;// у этого объекта появилось свойство под именем q
a = function(){alert('budubudu')};//и тут вы, резко в ту же переменную назначили функцию.
//все, объекта больше не существует, да здраствует погибший он
a();// вызываете функцию, которую назначили в последний раз в переменную.
alert(a.q))// и тут резко, и не ожиданно вы хотите у функции a получить какое-то неизвестное свойство.
//q умерло, вместе со своим объектом-владельцем
// я уж не говорю о том, что вы допускаете ошибки в синтаксисе(но, я надеюсь, что это уже просто опечатка)


Прежде чем задавать новые вопросы, прочтите хотя бы:
http://javascript.ru/tutorial/object (весь цикл статей)
http://javascript.ru/basic (особенно http://javascript.ru/basic/functions)
http://javascript.ru/Object


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