Javascript 设计模式——1.1 JavaScript的灵活性

来源:互联网 发布:淘宝的处方药是真的吗 编辑:程序博客网 时间:2024/05/23 16:56

抄书。。。。开始。。。

 

1.1 JavaScript的灵活性

 

第1章富有表现力的JavaScript

JavaScript是现在最流行、应用最广泛的语言之一。由于所有现代浏览器都嵌入了JavaScript解释器,所以在大多数地方都能见到其身影。作为一种语言,它在我们的日常生活中起着非常重要的作用,支持着我们访问的网站,帮助Web呈现出多姿多彩的界面。

那为什么有些人还把它看作一种玩具式的语言,认为它不值得职业程序员关注呢?我们认为其原因在于,人们没有认清这种语言的全部能力及其在当今的编程世界中的独特性。JavaScript是一种极富表现力的语言,它具有一些C家族语言所罕见的特性。

本章将探讨一些令JavaScript如此富有表现力的特性。从中你可以体会到,这种语言允许你用各种方式完成同样的任务,还允许你在面向对象编程的过程中借用函数式编程中的概念来丰富其实现方式。本章解释了究竟为什么应该使用设计模式,以及它们在JavaScript程序设计的运用是如何使代码更高效、更易于处理的。

1.1 JavaScript的灵活性

JavaScript最强大的特性是其灵活性。作为JavaScript程序员,只要你愿意,可以把程序写得很简单,也可以写得很复杂。这种语言也支持多种不同的编程风格。你既可以采用函数式编程风格,也可以采用更复杂一点的面向对象编程风格。即使你根本不懂函数式编程或面向对象编程,也能写出较为复杂的程序。使用这种语言,哪怕只采用编写一个个简单的函数的方式,你也能高效地完成任务。这可能是某些人把JavaScript视同玩具的原因之一,但我们却认为这是一个优点。程序员只要使用这种语言的一个很小的、易于学习的子集就能完成一些有用的任务。这也意味着当你成长为一个更高级的程序员时,JavaScript在你手中的威力也在增长。

JavaScript允许你模仿其他语言的编程模式和惯用法。它也形成了自己的一些编程模式和惯用法。那些较为传统的服务器端编程语言具有的面向对象特性,JavaScript都有。

先来看一个用不同方法完成同样的任务的例子:启动和停止一个动画。如果你看不懂这些例子,别担心。我们在此使用的所有模式和技术都会在本书后面进行讲解。目前你可以把这一部分看作一个演示在JavaScript中用不同方法完成同一任务的实际例子。

如果你习惯于过程式的程序设计,那么可以这样做:

 

这种做法很简单,但你无法创建可以保存状态并且具有一些仅对其内部状态进行操作的方法的动画对象。下面的代码定义了一个类,你可以用它创建这种对象:

 

上述代码定义了一个名为Anim的类,并把两个方法赋给该类的prototype属性。第3章将详细讲述这种技术。如果你更喜欢把类的定义封装在一条声明中,则可改用下面的代码:

 

这在传统的面向对象程序员看来可能更眼熟一点,他们习惯于看到类的方法声明内嵌在类的声明之中。要是你以前用过这样的编程风格,可能想尝试一下下面的示例。同样,如果代码中有些地方你看不懂,不必为此而焦虑:

 

Function.prototype.method用于为类添加新方法。它有两个参数。第一个是字符串,表示新方法的名称;第二个是用作新方法的函数。

你可以进一步修改Function.prototype.method,使其可被链式调用。这只需要让它返回this值即可(方法的链式调用技术将在第6章中讲述):

 

你已经见识了完成同一项任务的5种不同方法,它们的风格略有差异。基于自己的编程背景,你可能觉得其中的某种方法比别的方法更为合意。这是件好事:JavaScript允许你用最适合于手头项目的编程风格进行工作。不同的风格在代码篇幅、编码效率和执行性能方面各有其特点。本书的第一部分将讨论所有这些风格。

原创粉丝点击