1. 此文啰嗦。
通过翻译这篇长文,我发现老外的啰嗦水平真是达到了登峰造极的境界了--经常性地一个长长的句子构成一段,想要找个句号都很难。这虽然给我翻译造成了相当大的障碍,导致了断断续续一个多月的工作量(读一两遍根本理解不了)。但客观上却明显提高了自己的阅读和翻译能力,这也是可喜的一面。老外虽然啰嗦,但也没有不符合语法的地方,而且关键在于要说明的这个闭包实在是太抽象了。所以,即使啰嗦点,能讲明白,也算是高手了。

2. 不易理解。
文中的内容环环相扣,前面的不理解,后面休想看懂。因此,一定要步步为营,乘胜追击。而且,在阅读的时候千万不能因为一两句话想不明白就轻言放弃,要有个思想准备。当然,也不能因为前面看不懂就不往后看了,前面的看不懂也要硬着头皮往后看。一般来说,不通读全文三五遍,甚至七八遍都是理解不了的。因为其中有很多概念和逻辑需要梳理、定位、形象化。

3. 最好参考其他资料。
如果你能理解《JavaScript 权威指南(第四版)》中有关“作用域”和“变量解析”的阐述,或者《JavaScript 权威指南(第五版)》中有关“闭包”的内容,那么,看这篇文章不应该有太大的难度。所以,可以参考这些资料。

4. 把抽象转变为形象
文中的概念太多,如果从抽象意义上认识,在没有理解的情况下很难记住,而记不住前面的概念就无法理解后来的概念。所以,最好准备点草稿纸,随看随画,不停修正自己的理解。通过把抽象的概念形象化,可以有效地提高阅读效率。另外,建议有条件的读者将文章打印出来看,为此我专门准备了适合打印的版本(见文首的链接)。

5.真正理解全文后的感受
守得云开见月明。如果你能够挺过来,那证明你是真正的好汉,更应该恭喜的是,你有希望成为一名合格的高级 JavaScript 程序员。因为,理解了闭包,不仅仅是一个闭包本身,也会相应理解 JavaScript 基于原型的继承机制(关于这一点,我会再撰文)、属性解析机制,或者说差不多算是理解了 JavaScript 解析器的工作原理了。那种一览众山小的感觉,何止是快意?

最后,祝您学习顺利!

Web 标准化也不是要“横扫一切牛鬼蛇神”,其要义是以语义化的原则使用标记,回归 HTML/XHTML 作为结构化语言的本来面目。

虽然不再提倡用 table 元素来进行页面布局,但用它来组织表格化的数据仍然还是最合适的选择。由于 table 元素的天生特性,使得用它来显示格式化的数据非常便利。但我们大多数人对于 table 元素的认识大概还只停留在 bgcolor、cellspacing、cellspadding、align 等属性和 <tr>、<td> 等标签上面,对于 table 元素的其他有用属性及其相关标签了解甚少。今天,先来学习一下 table 元素的两个不常用但却非常有用的属性--frame 和 rules。回头再学习与 table 元素有关的标签,如 thead、tbody、colgroup 等。 查看全文 »