14-小结
2.7 小结
本章我们讲解了一些在其他广泛使用的程序语言中没有的概念,尽管这些概念并不是JavaScript 特有的。这些话题的知识对于编写单页应用很重要,没有这些知识的话,在构建应用时你会觉得很迷茫。
理解变量作用域以及变量和函数提升,是揭去JavaScript变量神秘面纱的基础。理解执行环境对象,对于理解“作用域和提升是如何工作的”来说至关重要。
知道在JavaScript中如何使用原型创建对象,使得用原生的JavaScript编写可重用的代码成为可能。不理解基于原型的对象,工程师们经常会回过头来使用库来编写可重用的代码,依靠库提供的基于类的模型,实际上是在基于原型的模型上封装的。如果在学习了基于原型的方法后,仍然喜欢使用基于类的系统,你依然可以在一些简单的使用案例中利用基于原型的模型。对于构建单页应用,我们将使用基于原型的模型,这有两个原因:我们相信对于我们的使用案例来说更加简单,并且这是 JavaScript 的方式,我们是用JavaScript在编码。
编写自执行匿名函数,会控制变量作用域,帮助你防止无意间污染了全局名字空间,以及帮助你编写不会和其他库产生冲突的库和代码库(codebase)。
理解模块模式和使用私有变量,允许你精心制作对象的公开API,隐藏所有杂乱的、其他对象不需要访问的内部方法和变量。这能保持API的美观和简洁,哪些方法需要消化学习,哪些是API的内部辅助方法,一目了然。
最后,我们在一个最难的JavaScript概念上花费了很多时间:闭包。如果你仍然没有完全理解闭包,希望在这本书中有足够的实践机会来巩固你的理解。
在心中有了这些概念后,我们继续来学习下一章的内容,开始构建具有产品级质量的单页应用。
注 释
[3]. 如果你一边在阅读本章的内容,一边在吃掉在胸口的薯片,那么你就是个懒散的人。
[4]. pplix (VistaSource) Anywhere Office。
[5].你会说“同源策略”?如果你曾经使用Flash 或者Java开发过东西,你对此挑战应该是再熟悉不过了。
[7]. 本书的另外一个名字可以是《使用最佳方法构建单页应用》,但这显得有点儿啰嗦。
[8]. 请查看http://www.javascriptkit.com/dhtmltutors/domready.shtml,感受一下痛苦。
[9]. 但没有完全消除:如果服务端和客户端的数据交换格式更改了,但是很多用户在他们的浏览器中已经加载了先前版本软件的数据,这会发生什么状况?可以预先提供一些方案。