第一章 神奇的Jav aScript JavaScript 是近年来一个非常流行并被广泛应用的语言。因为它被几乎所有的浏览器所支持,因此也得到了广泛的推广。作为一种语言,它在我们的生活变得难以相信的重要,帮助我们增强 web 的功能,创建丰富的用户界面。 为什么仍然有一些人认为它是一种“玩具式”的语言,认为它不适合于专业的程序员。我认为这是因为他们没有认识到它的真正的强大之处和它相比其它各种编程语言的独特性。JavaScript 是一门非常神奇高深的语言,拥有一些 C 家族类语言所没有的特性。 本章我们将探讨是哪些特性使 JavaScript 如此的神奇高深。我们将看到 JavaScript 使你可以用多种不同的方式来完成同一件事情,以及如何通过函数式程序设计的方式来模拟实现面向对象程序设计。我们将讨论为什么你应该把设计模式放在首页以及如何使用它来使你的代码更有效,工作更简单。 灵活的Jav aScript JavaScript 的一个很重要的特性就是其灵活性。作为 JavaScript 程序员,你可以使你的程序很简单或很复杂。JavaScript 允许你使用各种不同的编程风格。你可以使用函数式风格或者接近于面向对象的编程风格来编写你的代码,同样你可以在不了解函数式或面向对象编程的情形下书写相对复杂的程序,你也可以通过写一些简单的函数来使用它。或者这些也是一些人把JavaScript 看做“玩具”语言的一个原因,但我们应该认为这些是一些优秀的特性。它可以使程序员只掌握小部分易学的语言子集来完成一些有用的功能,同样它也意味着当你成为一个更加高级的程序员时 JavaScript 会在你手中发挥更大的能力。 JavaScript 允许你去模拟其他语言中的模式和思想。此外它自身还包含一些独有的特性。它提供了和传统服务端语言完全一样的面向对象特性。 我们来看一下通过几个不同的代码组织方式来完成同样的一件任务:启动和停止一个动画。如果你不理解这些例子也无所谓,我们这里使用的所有模式和技术都会在本书中讲到。现在,你可以把这一节做为 JavaScript 可以通过不同的方式来完成同一件任务的一个实际的例子。 如果你以前是一个面向过程的程序员,你可以会像下面这样做: /* Start and stop animations using functions. */ function startAnimation() { } function stopAnimation() { } 这种方法非常简单,但它没有创建一个动画的对象来使你可以保存状态并拥有一些只作用于其内部状态的方法。下面这段代码定义了一个类使...