JavaScript DOM高级程序设计

Posted by admin | 原创 | 星期三 25 6月 2008 9:13 上午

第1章

Page_24-Line_7 :

Basically, the method works by walking the DOM document tree looking for a specific className and an optional node and tag filter; it retrieves all the DOM elements associated with the specified class, node, and tag. Take the following document for example:

[原译文——意译]
从本质上说,这个方法的工作原理是根据可选的节点和标签在DOM文档树中查找类属性包含className的元素,最终取得的DOM元素都与指定的类、节点和标签相关。以下面的文档为例:

[编辑修改的结果——现在书中文字]
从本质上说,这个方法的工作原理是在DOM文档树中查找类属性包含某个className、可选的节点和标签过滤器的元素,找出所有与指定的类、节点和标签相关的DOM元素。以下面的文档为例:

[现译文——直译]
从本质上说,这个方法的工作原理是对DOM文档树进行遍历,从中查找特定的className、可选的节点和标签筛选器;最终取得所有与特定的类、节点和标签相关的DOM元素。以下面的文档为例:

Page_28-文字第三段:

“……,因为换行符将被解释为分号(;)。”中的分号应该是英文分号,即:(;)。

 Page_32-图1-4上方第二段:

“打开本书源文件中的chapter/……”,应该是“……chapter1/……”。

 Page_42-文字第一段:

“……注册了window的load事件侦听器:” ,修改为“……为window注册了load事件侦听器:”比较好理解。

Page_43-倒数第二段:

“本章也介绍了在使用JavaScript这门语言的过程可能会遇到的许多常见的陷阱。”应该是:
“本章也介绍了在使用JavaScript这门语言的过程中,可能会遇到的许多常见陷阱。”

6 条评论 »

  1. 评论 作者 soni — 2008-08-09 @ 9:48 上午

    第2章有一个很严重的错误,作为译者不应该看不出来。
    2.1.1继承
    这里讲了一个很不恰当的例子,明显是一个错误的例子。
    employee.getName = person.getName;
    这个显然不能叫做继承方法,而且根本就不是继承,只不过是指向了同一个匿名函数。
    原书英文版我没见过,但这明显不是翻译的问题,作者如果连这个问题都搞错,恐怕不是粗心的问题了。
    另外,抛开前文,图2.1也是那么的别扭。

  2. 评论 作者 5study — 2008-09-17 @ 5:00 下午

    刚拿到书,还在看,发现会来提交,作者很认真,感谢!

  3. 评论 作者 admin — 2008-09-17 @ 8:53 下午

    @soni

    抱歉,这么长时间没有回复你的问题。其实,这本书作者对什么是继承非常清楚,而且,作者在书中也提到“在JavaScript中,继承是通过简单地从一个对象原型向另一个对象原型复制对象而实现的,但最终的思想都是相同的”。而且,那个例子和图用来说明作者描述的继承也是完全没有问题的。

    只不过,每个人心目中对继承这个概念的理解可能有所差异。请恕我直言,这本书没有讲述一般入门级的内容,而且关于继承也就讲了这么一小部分,应该说揭示出了继承的实质。

  4. 评论 作者 admin — 2008-09-17 @ 8:55 下午

    @5study

    在审读这本书中文版的过程中,我和朋友也发现了一些错误和问题。抽时间我会及时补充这个勘误页面。多谢支持!

  5. 评论 作者 soni — 2008-10-07 @ 5:10 下午

    多谢你的解答。

    仔细看了一下那段文字,作者确实只说了employee继承了person中的方法,而没有说employee继承了person。

    本例中,如果person添加了新的属性,那么employee不会自动获取这个新属性。所以,按照传统的继承概念来说,employee和person肯定不是继承和被继承关系。

  6. 评论 作者 琳琳的小狗 — 2008-11-07 @ 4:47 下午

    @soni

    其实这种做法应该叫做mixin……

对这篇文章的评论的 RSS 聚合。 TrackBack URI

发表您的评论

验证码  If you cannot see the CheckCode image,please refresh the page again!