Почему jQuery является одновременно функцией и объектом?
Сабж.
Например, можно сделать так: jQuery(string || jQuery || node) //функция А можно сделать так: jQuery.isArray(var) //объект Как повторить подобный эффект? |
читайте основы.
практически все в JavaScript(кроме примтивных объектов) является объектами.
var a = function(){alert('qwe')};// кажется функция
a.q=5;// фиг там, уже объект
a();
alert(a.q)
|
Основы читал, но этого момента не встречал. Странная логика. Почему же тогда:
var a = {};
a.q=5;
a = function(){alert('budubudu')};
a();
alert(a.q))
a.q == undefined?Можно ссылку на статью, описывающую поведение кода, приведенного тобой выше? |
Цитата:
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, время: 03:32. |