Ответ 1
$
, jQuery
- это просто функция. Не ссылаясь на него, это просто обычная функция. Конструктор функций Function
, поэтому $.constructor
показывает [native code]
.
Я попытался исследовать код jQuery, поэтому я использовал это:
document.write($.constructor);
Я получил этот результат:
function Function() { [native code] }
Что означает [native code]
? Почему я не вижу реальный код?
Протестировано с помощью Google-Chrome
$
, jQuery
- это просто функция. Не ссылаясь на него, это просто обычная функция. Конструктор функций Function
, поэтому $.constructor
показывает [native code]
.
Когда вы определяете функции в интерпретируемом языке (в отличие от скомпилированного языка). У вас есть доступ к файлу/строке/тексту, который определяет функцию.
В JavaScript, например, вы можете прочитать основной текст определения определенной функции.
Если вы попытаетесь сделать то же самое для функции, которая включена конструкцией в JavaScript, она не будет реализована как текст, а как двоичная. Нет никакой причины показывать двоичный код, который реализует эту функцию, потому что он не читается и может быть даже недоступен.
jQuery расширяет поведение JavaScript по умолчанию. Это одна из причин, по которой она была высоко оценена и похвалилась, в отличие от Prototype.js, например. Прототип менял естественное поведение JavaScript, создавая возможные несоответствия при использовании Prototype наряду с некоторыми другими фрагментами кода, которые основывались на нормальной функциональности.
jQuery расширяет JavaScript, есть функциональность, реализованная с использованием собственного кода (производительность которого является хорошей вещью).