Подтвердить что ты не робот

Что означает "[родной код]"?

Я попытался исследовать код jQuery, поэтому я использовал это:

document.write($.constructor);

jsfiddle

Я получил этот результат:

function Function() { [native code] }

Что означает [native code]? Почему я не вижу реальный код?

Протестировано с помощью Google-Chrome

4b9b3361

Ответ 1

$, jQuery - это просто функция. Не ссылаясь на него, это просто обычная функция. Конструктор функций Function, поэтому $.constructor показывает [native code].

Ответ 2

Когда вы определяете функции в интерпретируемом языке (в отличие от скомпилированного языка). У вас есть доступ к файлу/строке/тексту, который определяет функцию.

В JavaScript, например, вы можете прочитать основной текст определения определенной функции.

Если вы попытаетесь сделать то же самое для функции, которая включена конструкцией в JavaScript, она не будет реализована как текст, а как двоичная. Нет никакой причины показывать двоичный код, который реализует эту функцию, потому что он не читается и может быть даже недоступен.

jQuery расширяет поведение JavaScript по умолчанию. Это одна из причин, по которой она была высоко оценена и похвалилась, в отличие от Prototype.js, например. Прототип менял естественное поведение JavaScript, создавая возможные несоответствия при использовании Prototype наряду с некоторыми другими фрагментами кода, которые основывались на нормальной функциональности.

ТЛ; др:

jQuery расширяет JavaScript, есть функциональность, реализованная с использованием собственного кода (производительность которого является хорошей вещью).