闭包的用处
星期五, 8月 7th, 2009闭包的原理懂了,但闭包在 JavaScript 的实际编程中有什么用呢?这是一个同事的提问。闭包可以用在很多地方,但我还不能完全总结出来,最常用的使用方式有以下几种。
闭包的原理懂了,但闭包在 JavaScript 的实际编程中有什么用呢?这是一个同事的提问。闭包可以用在很多地方,但我还不能完全总结出来,最常用的使用方式有以下几种。
这本书的书名叫 JavaScript: The Good Parts,内容共 150 页左右。原本以为这么薄的书直接在书店看完就好。但当我在书店花了大约半小时时间快速看了一遍之后我觉得它值得我买下来。
它概括了 JavaScript 这个脚本语言的核心内容,不仅总结了语言的精华部分,还指出了“鸡肋”和“糟粕”。如果说犀牛书展现了 JavaScript 特性的丰富和功能的强大,这本书就体现了 JavaScript 语言轻巧简洁的特点。
其实 JavaScript 就是这么简洁,但是它很灵活,使用得好,可以编写出功能强大的程序。语言中核心的内容,也就是犀牛书的第一部分,全部在这本书中被总结出来了。但这并不表示可以从这本书入门,它不是入门级的,不适合初学者。作为概括总结,它是一本很好的帮助你提高 JavaScript 水平的书籍,因为总结也是学习的过程。
昨天又有人问我 Javascript 闭包到底是什么,我发现三言两语无法解释清楚,干脆就写出来吧。其实关于 Javascript 的函数作用域、调用对象和闭包之间的关系很微妙,关于它们的文章已经有很多,但不知道为什么很多新手都难以理解。我就尝试用比较通俗的语言来表达我自己的理解吧。
前些日子在做一个用 ajax 异步加载文件的预加载组件,系统以 jQuery 为基础,将页面要用到的组件,例如静态js,css,html 等文本类型的文件和图片、flash 等二进制类型的数据,加载到浏览器缓存中。这里遇到一个问题。
根据《程序员修炼之道》的建议,今年收获很多,嗯。
一直坚持使用 Ubuntu Linux 作为操作系统,坚持使用 Vim 作为主要开发的编辑器。经过一年的实践,对 Linux 的认识又有所提高,对 Vim 编辑器已经比较熟练。在 Linux 平台上作开发,效率比在 Win 平台上高出很多,主要是因为强大的开源工具集。
年初,读了《Learning Perl》,对 Perl 语言进行了初步的学习,之后写了几个小脚本,主要用于自动化方面,例如解析 CSV 文件、Excel 文档,自动处理电子邮件,以及系统管理等,并在实践中有所提高。对 Perl 的学习,是我走向 LAMP 的导火线。
由于目前国内 Java 和企业级开发环境的恶劣1,以及自身兴趣所在,决定转向 LAMP 方向。
利用出差那段时间的空闲,读了《PHP5 权威编程》,并接触了 WordPress。因为我的 Linux 和编程基础较好,所以转向 LAMP 的路很通畅。目前在一家互联网公司做 WebGame 的开发。
今年还读了不少好书,包括《精通正则表达式》、《JavaScript 权威指南》、《构建可扩展的Web站点》、《高性能网站建设指南》、《时间管理——给系统管理员》等等。
由于结合了 Web 方面的开发实践,效果很好。对 Web 站点的建设,有个最佳实践作为指导,对前端优化,也有个最佳实践作为指南,在实际开发中项目受益和个人收获都很大。尤其是对 Javascript 的深入学习和实践,理解并掌握了最核心的闭包、函数作用域链和函数调用对象的概念2。同时,掌握了命名空间,模块化开发等较高级的 Javascript 技巧。在 LAMP 开发过程中,也逐步认识到了开发符合标准 HTML/XHTML,CSS 的好处。
在项目开发中,对时间管理的概念有了初步的认识,并结合项目管理,体会到了注重时效3的重要性。
明天就是五一了,但是要加班。虽说三倍工资,还是有点不爽。
下班同事都去 happy 了。我没什么心情跟他们去,早早回来就开始整 PHP,趁机改改 blog 的代码。
正好今天是北京奥运倒计时 100 天,就有了做一个小小的北京奥运倒计时的 widget 插件。
PHP 才看到 function ,很不熟,插件的框架部分用了 PHP 的简单几个语句,倒计时部分还是用 javascript。真是惭愧啊,改天用 php 实现吧。。。不过倒是知道了怎么在 php 代码中嵌入 html 和 javascript ,还算有点收获吧 ^_^
。。。。。。已经00:06了,以上说的都替换为昨天吧。
今天是 2008年05月01日 距离北京奥运开幕 还有 99 天
嗯