> 原文出处:https://github.com/getify/You-Dont-Know-JS/blob/1ed-zh-CN/this%20&%20object%20prototypes/README.md#you-dont-know-js-this--object-prototypes # 序 在我读这本书为写这篇序言做准备时,我被迫反思我是如何学习 JavaScript,和在我用它进行编程和开发的最近15年它改变了多少。 当我15年前开始使用 JavaScript 时,在你的网页上使用 CSS 和 JS 这样的非 HTML 技术的做法称为 DHTML 或动态 HTML。回到那时,JavaScript 的用途有很大的不同,并且倾向于在你的网页上加入动画雪花,或者在状态栏上显示告知时间的动态时钟。可以说,在我的职业生涯早期,因为这些我经常能在因特网上找到的新奇小玩意儿,我真的没有太注意 JavaScript。 直到 2005 年我第一次重新认识到 JavaScript 是一个我需要更加重视的真正的编程语言。在挖掘研究了 Google Maps 的第一个 beta 版后,我被它的潜力吸引住了。那时,Google Maps 是第一个同种类的应用 —— 它允许你用鼠标移动地图,放缩,请求服务器而不必刷新页面 —— 都是通过 JavaScript。它看起来就像魔法! 当什么东西看起来像魔法时,这通常都一个好的信号:你正处在用新方法做事的黎明。噢,我没有错 —— 快进到今天,我敢说 JavaScript 是同时用于客户端和服务器端编程的主要语言之一,而且我不会用其他方式这么说。 在我回顾过去的15年时,我的一个遗憾是在 2005 年以前我没有给 JavaScript 更多机会,或者更确切地说,我缺乏远见来看到 JavaScript 是一个真正的编程语言,就像 C++,C#,Java 和许多其他语言一样有用。 如果我在自己的职业生涯一开始就拥有这套 *你不懂JS* 系列丛书,我们的职业经历将和今天有很大的不同。我喜欢这个系列的一个地方是:当你通读这个系列时,它在建立你的理解的水平上,而且用一种有趣且信息丰富的方式讲解 JS。 *this 与对象原型* 是这个系列的一个绝妙的续作。它漂亮且自然地建立于前一本书之上,作用域与闭包,将知识扩展至 JS 语言中十分重要的部分,`this` 关键字和原型。这两个简单的东西是你将在未来的书中学到的东西的枢纽,因为他们是用 JavaScript 进行真正的编程的基础。如何创建对象,关联它们,和扩展它们来表达你的应用中的东西,是用 JavaScript 建立大型和复杂应用程序所必要的。没有它们,用 JavaScript 制造复杂应用程序(比如 Google Maps)将是不可能的。 我敢说绝大多数 web 开发者可能从没建立过 JavaScript 对象,而只是将这个语言当做按钮和 AJAX 请求的事件绑定胶水。我曾经在我职业生涯的某一点上属于这个群体,但是当我学习了如何掌握原型和在 JavaScript 中创建对象后,一个充满可能性的世界向我打开了大门。如果你属于仅仅会写事件绑定胶水代码的那一类,这本书是必读的;如果你只是需要进修,这本书是你一定会用到的资源。不管怎样,你不会失望的。相信我! --: Nick Berardi [nickberardi.com](http://nickberardi.com/), [@nberardi](http://twitter.com/nberardi)