Исходный код реализации внутренних методов JavaScript

Есть ли способ увидеть код метода JavaScript? Не метод JavaScript из файлов .html или .js веб-сайта, а внутренние методы JavaScript.

Например:

  • Как я могу увидеть, как JavaScript вычисляет offsetTop элемента?

person Fistright    schedule 16.04.2016    source источник
comment
Это зависит от браузера. Также некоторые браузеры могут даже не использовать JavaScript для своих внутренних вычислений.   -  person Dave Chen    schedule 16.04.2016
comment
Например, я хочу видеть с хромом?   -  person Fistright    schedule 16.04.2016
comment
См. также Как просмотреть источник встроенных функций javascript?   -  person Bergi    schedule 23.05.2017


Ответы (1)


JavaScript реализуется браузером, поэтому это зависит от браузера.

Браузер Google, Chrome, имеет исходный код с закрытым, а не с открытым исходным кодом< /а>. Это означает, что вы не можете просматривать их исходный код, включая реализацию JavaScript. Но исходный код Chrome основан на исходном коде Chromium, исходный код которого является открытым. Вы можете просмотреть весь его исходный код в его репозитории git здесь. Узнайте больше об этих отношениях Chrome-Chromium в нижней части моего ответа.

Браузер Mozilla Firefox имеет открытый исходный код, как и все их проекты. Вы можете просмотреть весь исходный код проектов Mozilla здесь. Вы найдете код, реализующий JavaScript в Firefox, здесь.

Для реализаций JavaScript с закрытым исходным кодом, таких как Chrome, вы никогда не можете быть уверены, как именно работает каждый метод. Прочитав доступную документацию (см. ниже), вы сможете получить наилучшее представление о том, как можно реализовать метод.

Обратите внимание: тот факт, что исходный код Chrome основан на проекте с открытым исходным кодом Chromium, не означает, что исходный код то же самое. Chrome мог внести изменения в методы JavaScript, а мы об этом не знали. Я думаю, что это маловероятно, и все различия между Chrome и Chromium, скорее всего, перечислены на этой странице в Википедии, и есть хороший пост здесь, на AskUbuntu

Вы можете узнать больше об исходном коде Chromium здесь.

документация по Chrome JS


person Matt C    schedule 16.04.2016
comment
Большое спасибо :):) Другой вопрос: код метода javascript равен обычному коду javascript или имеет другую реализацию? - person Fistright; 16.04.2016
comment
@Fistright Не забудьте проголосовать за ответы, которые помогут вам, и пометьте ответ как the answer, если вы считаете, что он ответил на ваш вопрос! - person Matt C; 16.04.2016
comment
@Fistright Я не уверен, что понимаю, о чем вы спрашиваете в комментарии. Не могли бы вы перефразировать вопрос? - person Matt C; 16.04.2016
comment
Если например я вижу код за методом scrollTop(), то это обычный javascript? может ли кто-нибудь воспроизвести его с помощью обычного javascript? - person Fistright; 16.04.2016
comment
Да, это обычный javascript. Это то же самое, что написать метод самостоятельно и поместить его в теги <script> в ваших .HTML файлах. - person Matt C; 16.04.2016
comment
Я пытаюсь воспроизвести метод ScrollTop, но у меня нет идей? Вы знаете, как этот метод реализован? - person Fistright; 16.04.2016
comment
@MatthewCliatt: Ваш ответ вводит в заблуждение. Chrome – это немного измененный Chromium с полностью открытым исходным кодом. . - person Blender; 16.04.2016
comment
@Blender Спасибо, я собираюсь отредактировать свой ответ, чтобы отразить этот факт. Я также проведу небольшое исследование и добавлю то, что найду. - person Matt C; 16.04.2016
comment
@Fistright Вы искали эту функцию в документах Mozilla или Chromium? - person Matt C; 16.04.2016
comment
@MatthewCliatt: Можете ли вы назвать хоть одно различие между тем, как Chrome и Chromium отображают страницы или выполняют JavaScript? Я не думаю, что будет справедливо сказать, что Chrome может делать что-то другое только потому, что у него закрытый исходный код. - person Blender; 16.04.2016
comment
Да, но я не нашел :( - person Fistright; 16.04.2016
comment
@Blender Я не думаю, что есть какая-то разница. И я заявляю об этом, говоря, что маловероятно, что Chrome изменил какой-либо код javascript из Chromium. Но я не могу без веских доказательств сказать, что абсолютно уверен, что Chrome не изменил код javascript из проекта Chromium. - person Matt C; 16.04.2016
comment
@Fistright Я посмотрю и посмотрю, что я могу найти для этого. - person Matt C; 16.04.2016
comment
Вы пытаетесь воспроизвести scrollTop, почему бы просто не использовать его? - person Matt C; 16.04.2016
comment
@Fistright Похоже, scrollTop - это не метод Javascript, а просто атрибут элементов HTML. Прочтите эту страницу на Element.scrollTop. - person Matt C; 16.04.2016
comment
Таким образом, кажется, что метод javascript просто показывает нам значение этого атрибута. Это похоже на отступы или поля... нет? - person Fistright; 16.04.2016
comment
@Fistright Какой метод JavaScript? Для scrollTop нет метода JavaScript. Но, как и любой атрибут элемента html, вы можете получить к нему доступ и изменить его в коде JavaScript с помощью .scrollTop - person Matt C; 16.04.2016
comment
И в чем разница между свойством scrolltop и маржей элемента:) Я немного запутался:):) - person Fistright; 16.04.2016
comment
@Fistright Вы можете изменить scrollTop, и это повлияет на расстояние прокрутки. Вы не можете изменить маржу. - person Matt C; 16.04.2016
comment
Таким образом, верхняя часть прокрутки — это свойство элемента, и JavaScript не вычисляет его, а позволяет нам отображать и изменять его... верно? - person Fistright; 16.04.2016