2012-04-23 1 views
4

Где я могу найти исходный код встроенных функций js, например, я хочу посмотреть на функцию eval()Где я могу найти исходный код родных функций javascript?

+0

В зависимости от того, какой из них тоже ... – CppLearner

+1

Просто хочу указать: 'eval' в частности является движком * whole * (или, по крайней мере, это точка входа в весь движок). Есть много двигателей Javascript, на которых можно посмотреть. – Malvolio

ответ

2

В исходном коде двигателя JavaScript.

+0

Могу ли я смотреть онлайн код? – ASD

+0

@ASD, если это с открытым исходным кодом, то, вероятно, да. Какой двигатель вы ищете? – rid

+4

И имейте в виду, что источник отсутствует в JavaScript - обычно это C или C++. (В противном случае это не было бы родным!) – duskwuff

13

Оба Chrome и Firefox имеют открытый исходный код, и вы можете посмотреть на реализацию любой части механизма javascript в исходном коде для этих продуктов. У других браузеров есть своя реализация (например, IE), недоступная общественности для просмотра.

обеспечение Chrome v8 JavaScript двигателя здесь: http://code.google.com/p/v8/

Двигатель Firefox SpiderMonkey здесь: https://developer.mozilla.org/en/SpiderMonkey

Внимание, если вы еще не знакомы с этими продуктами и их инструментами, это может занять время, чтобы достаточно знакомы, чтобы найти то, что вы ищете.

+0

Я нашел [v8] (https://github.com/v8/v8/tree/master), но не нашел код, который содержит функции объекта окна –

+1

@Igor - Объект окна не является частью Javascript per se ,Это хост-объект, поэтому вы найдете код для него в реальной реализации Chrome или Firefox, а не в JS-движке. – jfriend00

2

Javascript - это язык скриптов, который реализован в базе кода браузера. Это означает, что могут быть разные реализации языка сценариев, с разными уровнями качества и, возможно, различные интуиции того, что требуется. Следовательно, разочарование от головы до стены многими веб-разработчиками при работе с разными веб-браузерами.

Возможно, вы рассмотрите реализацию Javascript в браузере, если браузер представляет собой версию с открытым исходным кодом, например: Chrome, Firefox, как указано в других приведенных ниже ответах.