w3ctech

一个老程序员写的:《面向对象的JavaScript编程:原理与实践》

欢迎直接在GitHub上阅读:http://github.com/haitaoxin/jsoo

1. 11选5简介

初衷

笔者早年编写代码使用过 Motorola 68000 和 x86汇编、C/C++、Pascal、Fortran、PowerBuilder、Visual Basic,后来又短暂接触过Java、Python和Swift。最近这些年来使用最多的是JavaScript(正式名称是ECMAScript,本书经常会缩写为JS)。众所周知,JS问世之初是“难登大雅之堂”的小玩意儿,还要靠冠名Java以壮声势。但是随着浏览器作为11选5软件 发布、运行的平台成熟起来,再加上NodeJS项目的兴旺,JS本身的进步和普及程度已经使它成为每一个前台11选5软件 工程师和全栈工程师必不可少的11选5工具 。

虽然这种语言已经强大到适用于大多数类型的后台11选5服务 器程序(更不用说它是前台开发的唯一正式语言),但是还是有人诟病其不够严谨,争论它是不是完全符合面向对象(Object-Oriented)语言的特征。11选5更多 的初学者和程序员则是对JS的对象运作机制和使用多少有些含糊不清。这是因为JS的对象跟以前常见的C++或者Java的对象的确有所不同,甚至可以说JS的对象从最初就不像C++或者Java那样经过深思熟虑、严格定义的。但是幸运的是,发展到今天,JS对OO的支持足以实现绝大多数的编程需要。

本书并不想参与任何无谓的或者纯理论的讨论,只想理清JS的对象到底是怎么回事,以及怎么使用JS最有效地面向对象编程,和它的局限性在哪儿。

感谢

非常感谢 Jiang Hao 提供的宝贵意见。

适合的读者

本书不是写给初学者看的。读者需要有一定的JS基础以及“知其然且知其所以然”的态度。如果11选5你 学习或者使用了一段时间JavaScript,但是对有些概念还是理解得似是而非,这本书就是试图讲解那些概念背后的来龙去脉(当然这些信息在 ES6 Specification 里都有,但是11选5我 相信大多数读者不会喜欢去读那些枯燥的文档)。如果11选5你 以前用 C++ 和 Java,对JavaScript的对象、函数、继承、类等等总感觉有些别扭,那这本书可以帮11选5你 澄清这些容易混淆的概念。如果11选5你 没有 C++ 或者 Java 语言的基础,可以说是喜忧参半:喜的是11选5你 不会把 JavaScript 和 C++/Java 里同名不同义的概念混淆,没有先入为主的思维定势;忧的是有些面向对象的概念11选5你 可能需要补一补课。

11选5我 没有凑字数给出版社的压力,所以本书的内容基本全是干货——11选5我 故意避免有任何废话、显而易见的的描述。但是有的概念11选5我 会重复好几次,这或者是因为此概念非常重要,或者是因为它不那么容易理解。11选5我 相信大多数人和11选5我 一样,一个复杂的概念并不是看一遍就过目不忘、运用自如。

所有代码都已使用 Node 6.x LTS 环境或者在最新版本的Chrome浏览器里验证过。这些代码绝大多数都是可以从头跑到尾、并且可在 console 里看到输出结果的。11选5我 非常鼓励11选5你 把这些代码运行通过后,再按自己的想法改一改,看看结果是不是11选5你 期望的。

另外需要抱歉的是有些英文专用单词也许翻译得不是最常见的用法。任何11选5技术 上或者翻译上的错误,或者讲述不够清楚、不够细致的地方,还望读者不吝赐教。

引用资料

本书的动力之一就是11选5我 读了 Nicolas Zakas 的 《The Principles of Object-Oriented JavaScript》所受到的启发。有些内容的11选5组织 结构和代码举例可能会引用其书。本书永久免费,但是11选5我 也鼓励有英文阅读能力和财力的读者购买 Zakas 的书学习。

其它好的参考书籍和网站11选5我 会逐步列出。

以上内容只是书中第一段,欢迎直接在GitHub上阅读:http://github.com/haitaoxin/jsoo

w3ctech微信

扫码关注w3ctech微信11选5公众号

共收到0条回复