Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   javascript изнутри (https://javascript.ru/forum/misc/33857-javascript-iznutri.html)

[ANTI]CheateR 11.12.2012 13:45

javascript изнутри
 
Добрый день.

А задавался ли кто вопросом, как устроены классы в js, например Object, Data. Знаю, что гугловый движок v8 opensource, копался ли кто в нем?

Интересно же :)

Skipp 11.12.2012 14:28

Ну классов в js, как таковых то и нет, а что именно тебя интересует? Просто это довольно обширный вопрос и ответить на него ты сможешь покопавшись самому в тех же исходниках или же спрашивая поконкретнее, думаю ответ найдётся у кого-нибудь.

[ANTI]CheateR 11.12.2012 14:53

Зато есть эмуляция классов.

Пишем var obj = new Object(), тем самым создавая экземпляр "класса" Object. Или я не прав?

Меня интересуют исходники функций-конструкторов, таких как тот же Object, например.

vashurin 11.12.2012 15:10

Цитата:

Сообщение от [ANTI]CheateR (Сообщение 220779)
Зато есть эмуляция классов.

У яваскрипт не "эмуляция" классов, а есть прототипы: http://javascript.ru/tutorial/object собственно все яваскрипт эмуляторы синтаксиса классов других языков программирования строятся на прототипах.

Цитата:

Сообщение от [ANTI]CheateR (Сообщение 220779)
Пишем var obj = new Object(), тем самым создавая экземпляр "класса" Object. Или я не прав?

Меня интересуют исходники функций-конструкторов, таких как тот же Object, например.

Не ясно зачем исходники и сможете ли вообще в них разобраться? Может документацию по ECMAScript: http://dmitrysoshnikov.com/ecmascrip...mplementation/ ?

godofjavascript 11.12.2012 17:52

Ты же не думаешь что нативные функции напсианы на javascript??

[ANTI]CheateR 11.12.2012 18:15

Цитата:

Сообщение от godofjavascript (Сообщение 220812)
Ты же не думаешь что нативные функции напсианы на javascript??

ну вообще, на странице движка v8 написано "V8 is written in C++", видимо, и функции реализованы на нем :)

вопрос профессионалам: вам самим неинтересно, что там внутри и как это работает? или вам хватает чтения спецификаций?

при создании темы подумал, что может кто-нибудь проводил небольшое исследование по этому вопросу и написал статью

melky 11.12.2012 18:29

Цитата:

Сообщение от [ANTI
CheateR] вам самим неинтересно, что там внутри и как это работает? или вам хватает чтения спецификаций?

что там можешь быть интересного?

я туда лазил для выяснения таких тонкостей, которые не описаны в спецификациях.

читать код трудно и незачем, если его описание находится в спецификации - русский перевод ECMA у нас есть, некуда удобнее.

другое дело, чтобы узнать, какими алгоритмами они руководствуются (кстати, в чромиуме вебките в
css3 анимациях уже процессе анимирования используется линейный поиск значений (кейфреймов) для свойств (это медленно и там даже коммент есть, что этот поиск нужно заменить на бинарный, так то :))
)

Цитата:

Сообщение от [ANTI
CheateR] при создании темы подумал, что может кто-нибудь проводил небольшое исследование по этому вопросу и написал статью

???

я облазил несколько "обзорщиков" исходного кода, но остановился на двух самых удобных, коих рекомендую ниже.

чромиум
http://code.google.com/p/chromium/source/search

файрфокс
http://dxr.mozilla.org/

остальные какие-то дикарские - в этих хотя бы поиск нормальный есть, и даже можно нажать на тип/переменную/инклуд, чтобы переместиться к её определению\файлу.

godofjavascript 11.12.2012 18:30

Если бы я писал движок я бы посмотрел но то как устроенны другие движки, а так мне не очень хочется тратить на это время, а любопытство есть куда направить.

п.с. профессионал. спецификацию не читал, доламерствовал до своего уровня мелкими шажками.

godofjavascript 11.12.2012 18:33

и вообще, разве понмиание того как реализован яваскрипт улучшит понимания яваскрипта или ВООБЩЕ ХОТЬ КАК-ТО СВЯЗАННО С САМИМ ЯВАСКРПТОМ??? я логики не пойму)) этот вопрос на сайте по С++ задавать надо было бы.

melky 11.12.2012 18:35

Цитата:

Сообщение от godofjavascript (Сообщение 220823)
и вообще, разве понмиание того как реализован яваскрипт улучшит понимания яваскрипта или ВООБЩЕ ХОТЬ КАК-ТО СВЯЗАННО С САМИМ ЯВАСКРПТОМ??? я логики не пойму)) этот вопрос на сайте по С++ задавать надо было бы.

да, улучшит. глупый вопрос


Часовой пояс GMT +3, время: 19:56.