84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
忽然想到这个问题,通常我们用的python是用C写的,有一些底层需要理解可以查看源码.javascript也已经封装好了很多东西,比如 onmouseover事件,如果我想看他的源码实现,应该从哪入手?
onmouseover
认证0级讲师
我想说的是,onmouseover这个是DOM的范畴,在JS引擎内可找不到任何关于DOM的实现。 DOM树的解析、构造、布局是浏览器内核(渲染引擎)的重要功能,常见的开源的有webkit(Safari/chrome旧版/android旧版)、gecko(火狐)和blink(chrome/android/新opera)等
javascript本身几乎没有“封装”或“实现”什么东西,全部内置对象甚至可以很容易地列出来
以上几个对象和parseInt/Float eval isNaN encodeURIComponent等少数几个函数合起来就是所有JS原生的能力了
JavaScript是浏览器上的ECMAScript的实现,具体的实现手法一般都通过JS引擎去解析的。不同的浏览器有这不同的引擎实现,所以造就了不同浏览器上的JS代码的细微差异,关于JS引擎可以参见:http://zh.wikipedia.org/wiki/JavaScript%E5%BC%95%E6%93%8E
想要查看JavaScript的源码就直接去看引擎的源码就好了,这里给出Googl和Firefox引擎源码的获取方法吧:
标题和内容问题不一致...
JS 是语言, 鼠标事件触发是 DOM 的处理, 不同浏览器不一样:
Chrome 的 JS 引擎是 V8, 处理 DOM 的引擎是 Blink(Webkit), 要看代码去看 Chromum 的仓库:https://code.google.com/p/chromium/
Firefox 引擎..每次名字不一样, IonMonkey 什么 **Monkey 的.. 排版引擎是 Gecko, 到仓库去找找吧, 不大清楚在哪:https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Downloading_Source_Archives
IE.. 估计看不了源码
不会 C++ 的顺便问下楼主 C++ 水平如何...
补充一个 JavaScript 实现的 JavaScript 虚拟机:
https://github.com/jterrace/js.js/
javascript 是一门很单纯的语言,只是浏览器为了让javascript可以操作自己在window对象上线实现了一堆接口
google chrome的js引擎是v8,nodejs用的也是这个,据说是目前速度最快的,用c++写的,代码在此http://code.google.com/p/v8/
多研究一下js的运行机制,比如看看JavaScript设计模式之类的书,应该会对浏览器中js是如何工作的会比较清楚些。至于研究内核代码,我想暂时应该还没到那个地步。
我想说的是,onmouseover这个是DOM的范畴,在JS引擎内可找不到任何关于DOM的实现。
DOM树的解析、构造、布局是浏览器内核(渲染引擎)的重要功能,常见的开源的有webkit(Safari/chrome旧版/android旧版)、gecko(火狐)和blink(chrome/android/新opera)等
javascript本身几乎没有“封装”或“实现”什么东西,全部内置对象甚至可以很容易地列出来
以上几个对象和parseInt/Float eval isNaN encodeURIComponent等少数几个函数合起来就是所有JS原生的能力了
JavaScript是浏览器上的ECMAScript的实现,具体的实现手法一般都通过JS引擎去解析的。不同的浏览器有这不同的引擎实现,所以造就了不同浏览器上的JS代码的细微差异,关于JS引擎可以参见:http://zh.wikipedia.org/wiki/JavaScript%E5%BC%95%E6%93%8E
想要查看JavaScript的源码就直接去看引擎的源码就好了,这里给出Googl和Firefox引擎源码的获取方法吧:
标题和内容问题不一致...
JS 是语言, 鼠标事件触发是 DOM 的处理, 不同浏览器不一样:
Chrome 的 JS 引擎是 V8, 处理 DOM 的引擎是 Blink(Webkit),
要看代码去看 Chromum 的仓库:
https://code.google.com/p/chromium/
Firefox 引擎..每次名字不一样, IonMonkey 什么 **Monkey 的.. 排版引擎是 Gecko,
到仓库去找找吧, 不大清楚在哪:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Downloading_Source_Archives
IE.. 估计看不了源码
不会 C++ 的顺便问下楼主 C++ 水平如何...
补充一个 JavaScript 实现的 JavaScript 虚拟机:
https://github.com/jterrace/js.js/
javascript 是一门很单纯的语言,只是浏览器为了让javascript可以操作自己在window对象上线实现了一堆接口
google chrome的js引擎是v8,nodejs用的也是这个,据说是目前速度最快的,用c++写的,代码在此http://code.google.com/p/v8/
多研究一下js的运行机制,比如看看JavaScript设计模式之类的书,应该会对浏览器中js是如何工作的会比较清楚些。至于研究内核代码,我想暂时应该还没到那个地步。