webkit中的javascript(3)---javascript在webkit内部实现结构
来源:互联网 发布:淘宝卖家怎么更改类目 编辑:程序博客网 时间:2024/03/29 01:14
by zevolo
Javascript如何访问内部属性或者方法呢?以Number对象为例,webkit内部的类图结构参见图。
对象的父类JSCell包含着一个内部的Structure对象。首先在sturcture内部的有一个指针m_propertyTable,对于这个对象自身的属性(在javascript表现为属性和方法),是通过m_propertyTable来管理的。通常这些属性关系>在JSGlobalObject::reset中初始化,可以通过JSGlobalData(m_propertyTable)来存放和读取。其次structure内部有一个指针prototype,JSObject可以通过这个指针来查找自身的prototype。如图中,Number的prototype指向NumberPrototype,NumberPrototype的prototype指向ObjectPrototype,ObjectPrototype指向NULL。这样就构成了一个prototype链。通过这两点,JSObject就可以通过查询的方法(如下代码)来查找属性。在getPrototypeSlot()中,fastGetOwnPropertySlot()是查找自身是否具有某种属性。
ALWAYS_INLINE bool JSObject::getPropertySlot(ExecState* exec, PropertyName propertyName, PropertySlot& slot){ JSObject* object = this; while (true) { if (object->fastGetOwnPropertySlot(exec, propertyName, slot)) return true; JSValue prototype = object->prototype(); if (!prototype.isObject()) return false; object = asObject(prototype); }}
- webkit中的javascript(3)---javascript在webkit内部实现结构
- webkit中的javascript(1)---javascript函数调用在webkit中的实现
- WebKit中的JavaScript Binding
- Webkit内部模块结构
- JavaScript事件在WebKit中的处理流程研究
- extend webkit javaScript objects
- WebKit -- qt javascript
- C++ webkit调用javascript
- webkit 扩展 JavaScript 对象
- WebKit javascript扩展
- webkit中的javascript(2)----javascript的prototype 和 constructor
- webkit中的javascript(4)---javascript执行的入口
- Web Worker在WebKit中的实现机制
- webkit JavaScript新版本(2008年)
- WebKit的JavaScript对象扩展
- WebKit’s JavaScript Profiler Explained
- Qt/WebKit::Qt javascript扩展
- Qt WebKit与JavaScript交互
- zhjy工作记录之三--SpringMVC+ligerui项目结构
- 若爱 就如桃花般地去爱
- awk数组高级
- 以前的作业,小问题,已解决附代码
- 2012.9.20以来的笔试面试(中兴,百度,趋势科技等)
- webkit中的javascript(3)---javascript在webkit内部实现结构
- Flex在线阅读 FlexBook FlexPaper
- PHP利用P3P实现跨域
- 降低显示列表上的复杂性来提高性能
- 青蛙又回到了井里
- FPGA_Embedded_9_21
- FPGA_Embedded_9_24
- html character entities
- 利用反射 和 comparator 实现List 的简单排序