`
sunshineormer
  • 浏览: 12391 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
文章列表
孙向晖 sunshineormer at hotmail.com map是JSObject的一个重要属性,存放一个对象的所有的属性的入口。要想了解map,就需要打开jsobj.h文件,看里面的定义。 struct JSObject {     JSObjectMap *map;     jsval       *slots; };
孙向晖 sunshineormer at hotmail.com 在正式开始之前,先说点关于RHG的话题,我的JHG系列,基本是在仿照着RHG的风格在写作。RHG的述事风格很有条理性,并且会指导你跳过跳过再跳过一些无关痛痒的程序片段。这是对的,在一大堆程序中,能够快速准确的定位,不是件很容易的事情。 从今天开始,我将讲述我对蜘蛛猴源代码的查找过程: 在js.c 找到main里面的调用过程,注意,下面的函数都是精简过的,而且是平级的关系: rt = JS_NewRuntime(... cx = JS_NewContext(rt,... glob = JS_NewObject(cx, &g ...
跟东、雪和健讨论后,重新修改了图2,可以联系图1来思考它们之间的演进关系了。 这个周末,基本上是跟指针,对象一起度过的。即使是在我偶而为之的睡梦中,也是在思考函数指针和指针函数。呵呵。 周日整理出来的继承(原型)链图,可以说是javascript对象基础中比较深的部分了。 浅蓝色的,typeof() ==Object, 灰色的部分,typeof == Function。这里面只有FunctionPrototype出乎我的意料,我对它的期望值是浅蓝色,可是,运行程序的结果证明,它是灰色调的。  
感谢超德和梁健,你们是我前进的动力。 昨天贴出来的,只能算是初步的编程模型,如果想弄清楚javascript的内存模型,必须看这幅图,不过这幅图还有一些简化的部分。以后会用程序来验证和说明这幅图的正确性,敬请期待。  
那天听东东将javascript,他讲得也匆忙,我听得也犯晕,心想如果能够建立起javascript的内存对象模型该多好啊。可是在网上找了好久,也没有发现javascript的Hacking guide,不经意间,却找到了ruby hacking guide,不错不错。还好有mozilla 中蜘蛛猴的源代码,我想离真正建立javascript的对象模型(内存模型)已经不远了。 仿照ruby hacking guide的做法,先把已经掌握的资料用图表示出来,关于其之间的详细的关系,我会在后面的文章中举例说明。   图示说明:椭圆边框的部分是c的结构体(struct),带圆点的线条代表指针,在椭圆 ...
一种语言,除了语言规范之外,或许会有若干种实现。javascript是这样,虽然大家都号称要遵守ECMAScript 262规范,但是微软的实现和蜘蛛猴的实现显然是存在一些差异的;java是这样的,即使有了虚拟机规范,但是ibm和bea会根据自己的需要做一些调优;C++又何尝不是如此呢? 想开些,这没有什么不好。  如果想了解C++的内存对象模型,最好的办法是拿到C++的编译器,随便哪个都行,当然,那么多的代码,没有点耐心和时间,是不太会有人看下去的。还好,第一个C++编译器的作者,Stan Lippman大师,把自己的编译器精髓部分著书立说,这就是我们拿到的《inside the cpp ob ...
Global site tag (gtag.js) - Google Analytics