《JavaScript面向对象编程指南》译者序
相对于Perl、Python等动态脚本语言来说,JavaScript确实是一门饱受误解的语言。对于译者这种从20世纪90年代末走过来的C++程序员来说,尤其如此。在那个年代,提起JavaScript总是会让人联想起各种花哨的小玩意儿、令人讨厌的恶作剧、浏览器之间的恶斗(例如IE与Netscape)等令人不太愉快的场景。总而言之,我长期以来对JavaScript的评价基本上是比较负面的,认为那不过是一个旁门左道的、不务正业的玩具罢了。
但随着AJAX技术在21世纪最初10年里的爆炸性发展,人们突然意识到JavaScript原来也可以给Web页面带来如此令人惊叹的用户体验,如果说在这之前,大部分Web页面还都只不过是一些被动供人阅读的电子刊物的话,如今它们已经真正成为了一个"实用程序",可以具有即时交互能力,可以接受个性化定制,等等。总之,您在桌面程序中能做到的,它基本都已经做到了。这的确出乎许多人的预料,包括我。
人们不禁要问了,似乎AJAX的核心XMLHttpRequest对象并不是一个新鲜事物呀,为什么直到最近才发现这种用法呢?这其中的原因是多样的。例如,如果没有宽带产业的发展,即便是发送JSON这种轻量级数据所带来的延时成本也是不可想象的。但无论如何,译者认为其中最重要的原因应该还是语言本身的标准化。如果没有ECMA-262这份标准文档,各大浏览器在客户端的表现完全不一致,我们就没有办法对Web应用实行MVC模式,以实现行为、外观、内容三者的分离。因为那样的话,开发成本显然是不能接受的。
而一旦我们在程序设计中使用了MVC模式,就意味着我们的设计思路已经进入面向对象的领域。面向对象思维在程序设计方法学上是具有划时代意义的。它标志着我们代码的重用目标由实现转向了接口,从而形成了模块化编程的趋势。这有利于我们随时更换不同的实现模块,以使得我们的代码应对变化的能力更强,也更容易维护。因而,各种成本的降低加速了这种编程方式的商业化。
JavaScript的面向对象特性不同于其他任何一种语言,从某种意义来说,它面向"对象"的程度比任何一种语言都要彻底(因为它差不多除了"对象"什么也没有)。这使得它更为灵活,更为动态化,也更具可挖掘性。现在,是时候重新学习JavaScript这门语言以及其面向对象特性了。希望这本书给你带去有用的信息。
翻译一本书从来都不是一个人的功劳,在此感谢人民邮电出版社的陈冀康编辑和微软亚洲研究院徐宁工程师在本书翻译过程中给予我的帮助与鼓励。特别是徐宁工程师还承担了本书第8章的初稿翻译工作,感谢他的付出。希望这本书也能给你们带来快乐。
《JavaScript面向对象编程指南》译者序的更多相关文章
- 《Python算法教程》译者序
在计算机的世界中,算法本质上是我们对某一个问题或者某一类问题的解决方案.也就是说,如果我们想用计算机来解决问题的话,就必须将问题的解决思路准确而完整地描述出来,同时计算机也要能理解这个描述.这需要我们 ...
- python算法介绍:希尔排序
python作为一种新的语言,在很多功能自然要比Java要好一些,也容易让人接受,而且不管您是成年人还是少儿都可以学习这个语言,今天就为大家来分享一个python算法教程之希尔排序,现在我们就来看看吧 ...
- Python快速教程 尾声(转)
原文地址: http://www.cnblogs.com/vamei/p/3603046.html 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留 ...
- python快速教程-vamei
2016年10月26日 12:00:53 今天开始着手python的学习,希望能高效快速的学完! Python基础(上)... 7 实验简介... 7 一.实验说明... 8 1. 环境登录... 8 ...
- Python 简明教程 ---10,Python 列表
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序 = 算法 + 数据结构 -- Nicklaus Wirth 目录 从这句话程序 = 算法 + ...
- Python快速教程 尾声
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 写了将近两年的Python快速教程,终于大概成形.这一系列文章,包括Python基 ...
- 改写《python基础教程》中的一个例子
一.前言 初学python,看<python基础教程>,第20章实现了将文本转化成html的功能.由于本人之前有DIY一个markdown转html的算法,所以对这个例子有兴趣.可仔细一看 ...
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
随机推荐
- HTML基础(2)
常见标签 1.img标签 <img src="图片地址" alt="图片名"/> 图片(单标签) alt属性 是图片名字,是给百度搜索引擎抓取使用 ...
- Less入门到上手——前端开发利器<二>深入了解
接着昨天的继续... ... 4.嵌套: HTML部分 <table> <tr> <th colspan="3">测试列表标题</th&g ...
- Java安装与环境配置
Java安装 第一步 安装jdk-8u111-windows(根据操作系统的位数选择安装32位或64位) 注:路径用英文,不要出现中文和空格等.jdk和jre放在同一个文件夹下,便于管理 本例的路径为 ...
- Codeforces Round #263 (Div. 1)
B 树形dp 组合的思想. Z队长的思路. dp[i][1]表示以i为跟结点的子树向上贡献1个的方案,dp[i][0]表示以i为跟结点的子树向上贡献0个的方案. 如果当前为叶子节点,dp[i][0] ...
- sqlplus无密码登录TNS协议适配器错误
登录到sqlplus使用无密码登录用户时出现:TNS协议适配器错误 检查自己是否有多个数据库,可能默认登录的数据库服务没有启动,启动即可. 查看当前数据库名 select name from v$d ...
- iframe 根据加载内容调整高度
iframe标签代码 <iframe id="checkListFrame" name="checkListFrame" src="Ind ...
- linux注销、关机、重启
一.Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:[root@laolinux root]#logoutRed Hat Linux release ...
- Visual Studio 如何恢复默认设置
我们在使用 Visual Studio 的时候,常常有一些窗口不见了又弄不回来的情况,如何恢复默认设置呢? 1.点击“开始-->程序-->Microsoft Visual Studio20 ...
- Web移动应用调试工具——Weinre
如今人们也越来越习惯在手机上浏览网页,而在手机上这些针对桌面浏览器设计的网页经常惨不忍睹.Web应用开发者需要针对手机进行界面的重新设计,但是手机上并没有称心如意的调试工具(如Firebug.web ...
- flash透明效果代码分享~~~
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...