JavaScript是基于对象的脚本语言,但是它的结构体系与i面向对象语言如Java并不一样,这对于习惯了面向对象的程序员来说,有时候适应起来并不那么容易。而DOJO,这个封装了JavaScript的库,提供了面向对象编程的概念,如类、构造器、继承等。本文主要介绍dojo中类的定义格式以及各参数的设置。
先看一个小例子:
dojo.provide("custom.javascript.Student);
dojo.declare("custom.javascript.Student",null,{ firstName: "",middleName:"",lastName: "",constructor: function(fName,mName,lName){ this.firstName = fName; this.middleName=mName; this.lastName = lName; },buyBook: function(bookName,num){ alert(firstName+" "+middleName+" "+lastName+" want to buy "+num+" "+bookName); } });
示例定义了一个Student类,第一条语句dojo.peovide("custom.javascript.Student"),与调用类时的dojo.require("custom.javascript.Student")相对应。dojo中类的定义格式为:dojo.declare(className,superClass,classMemeber),该方法有三个参数,各参数含义如下:
1.第一个参数className为类名,如示例中的custom.javaworld.Student;
2.第二个参数为该类的父类,dojo中提供了多重继承,当有多个父类时,使用[superClass1,superClass2,...]格式,示例中值为null,因为该类不继承自任何类;
3.第三个参数为类的成员定义,与一般面向对象语言一样,dojo中类的成员也包括字段和方法,定义格式为一个HashMap(键:值),示例中,firstName,middleName,lastName为类的字段,constructor为类的构造器,用它来构造对象,buyBook为学生类的一个方法。
dojo中,类定义后,同样可以如其他语言一样,使用new className()来构造对象,如本例中,可使用new custom.javaworld.Student();