7.5 自定义类
前面章节中我们总共介绍了七种对象:Number对象,Boolean对象,String对象,Array对象,Date对象,Math对象,RegExp对象。这些是JavaScript内建的对象,而我们也可以定义自己的对象。对象是类的实例化,总结对象的属性方法抽象成类。类由三部分组成:
1. 构造函数
2. 属性
3. 方法
7.5.1 类的定义和构造函数
构造函数是类的一个特殊方法,每一次创建该类的对象时,构造函数就会被调用。定义一个类的构造函数之后,类就被创建了。它可以有0个或多个参数。定义类就是定义它的构造函数,因此即使构造函数不包含任何参数和代码也需要编写一个空的构造函数。
构造函数的方法名称需要跟类名一致,比如下面的代码就可以创建一个Person的类:
functionPerson(name,age,sex){
this.name= name;
this.age= age;
this.sex= sex;
}
注意:我们使用了this关键字,它在类中表示当前的对象。
7.5.2 类的属性
就像String对象有length属性一样,自定义的类也可以有属性。比如7.5.1定义的类中,JavaScript会自动创建属性age, name, sex,这样创建的属性可以在外部可读可写。
7.5.3 类的方法
为类创建新的方法时,语法如下:
className.prototype.methodName=function([arg0,arg1…,argN]){
statements
}
我们可以为Person类创建一个方法:
Person.prototype.output= function(){
document.write(this.name+""+this.age+" "+this.sex);
document.write("<br>");
}
7.5.4 类的实例化 –对象
自定义类的实例化与内建类相同,也是用new关键字。我们可以实例化并使用Person类:
varp1 = new Person("Lily",9,"female");
varp2 = new Person("John",19,"male");
p1.output();
p2.output();
代码将在页面上分两行显示“Lily 9female“和“John 19 male”。