JavaScript并不像Java、C++和C#那样支持真正的类(然而JavaScript2.0计划引入真正的类)。但是,在JavaScript中可以定义伪类,做到这一点的工具就是构造函数和原型对象。这篇文章只讨论构造函数,原型对象在后续文章中继续讨论。
我们已经知道如何使用对象直接量{}或者使用如下的表达式来创建一个新的空对象:
new Object();
我们还看到了使用如下的类似语法来创建其他类型的JavaScript对象。
var array=new Array(10);
var today=new Date();
new运算符的后面必须跟着一个函数调用。new创建了一个新的没有任何属性的对象,然后调用该函数,把新的对象作为this关键字的值传递。设计来和new运算符一起使用的函数叫做构造函数。构造函数的工作是初始化一个新创建的对象,设置在使用对象前需要设置的属性。可以定义自己的构造函数,只需要编写一个为this添加属性的函数就可以了。下面的代码定义了一个构造函数,然后使用new运算符调用它两次来创建两个新的对象:
function Rectangle(w,h){
this.width=w;
this.height=h;
}
var rect1=new Rectangle(2,4);
var rect2=new Rectangle(8.5,11);
注意构造函数是如何使用自己的参数来初始化this关键字所引用的对象的属性的。通过定义一个适当的 构造函数,就定义了对象的一个类。所有使用Rectangle( )构造函数创建的对象现在都确保初始化了width属性和height属性。这意味着,可以依靠这一特性编写一个程序,并且统一地处理所有的Rectangle对象。