深入讨论之前,先来看看在JavaScript中定义函数的各种方式。
JavaScript提供三种方式来定义函数:
下面创建名为add的一个函数来演示这三种方式。该函数的用途是取得两个传递的参数,对其相加,再返回结果。
清单A演示如何用function语句来创建函数,这是最常见的做法。清单B演示如何用Function()构造函数来创建函数。我为onChange或onClick等事件处理程序来使用Function()构造函数。它的优点是可以使用this关键字。该关键字引用了通过它来调用函数的对象;这便可将对象传给一个函数。清单C演示的是如何将函数定义成字面值,还证明了JavaScript函数就是字符串。这意味着以下代码:
xyzzy = add; alert(xyzzy(2,2))
alert(add(2,2))
上面介绍了一些基本知识,接着讨论JavaScript的一些较高级的应用。
JavaScript函数可作为类构造函数使用,以便创建自定义对象。由于这些类的实例是用new运算符创建的,所以它们可用this关键字来引用新对象,如清单B的Function()构造函数所示。在类构造函数中使用this关键字,类的实例就可同时拥有方法和属性,如清单D所示。