在JavaScript中,Object是一个内部对象。一般,我们可以直接定义自己的类,然后通过实例化它从而在应用中使用。使用Object对象,也可以实现类似于我们自己定义的类的功能。
Object对象提供了种创建自定义对象的简单方式,不需要程序员再定义构造函数。
例:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> <%--JavaScript学习--%>
<scripttype="text/javascript" language="JavaScript">
//函数功能为显示person对象中参数的属性值
function getValue(attr)
{
//显示pserson对象的属性值
alert(person[attr]);
}
var person=new Object();
person.name="scott" ;
person.age="20" ;
function PersionShow()
{
//调用函数
getValue("name" );
getValue("age" );
}
</script>
<%--测试使用的按钮--%>
<inputid="Button1" type="button" runat="server" value="测试" onclick="PersionShow();"/>
可以使用Object对象new一个新的对象实例,然后动态地为这个对象实例增加属性和方法。但是这和我们自己定义类有些地方是不同的,通过下面的例子来说明。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> // 使用数组的方式访问对象实例的属性值 // 为新建的对象实例添加成员方法 // 另一种为新建的对象实例添加方法的实现 // 首先,定义一个函数 // 然后,将新定义函数的返回值赋予新建对象实例的一个成员方法名 <BODY> |
运行结果如下:
使用数组的方式获取到对象的属性值,如下所示: 学校名称 : Changchun University of Science and Technology 建校时间 : 58年8月12日 学院个数 : 33 专业个数 : 102 学生人数 : 35686 教师人数 : 1505 学校名称 : Changchun University of Science and Technology 建校时间 : 58年8月12日 学院个数 : 33 专业个数 : 102 学生人数 : 35686 教师人数 : 1505 学生分别 : Sa|Sb|Sc|Sd|Se|Sf|Sg|Sh|Si|Sj|Sk|Sl|Sm|Sn|So| 教师分别 : Ta|Tb|Tc|Td|Te|Tf| 学校简介 : Changchun University of Science and Technology(CUST) is a university of science and technology founded by the Chinese Academy of Sciences in 1958. |
简单总结:
1、使用JavaScript内部对象创建一个对象实例时,可以指定一个构造函数的一个参数,也可以不指定任何参数,如下所示:
obj = new Object([value]) 参数obj 必选项。要赋值为 Object 对象的变量名。 value 可选项。任意一种 JScript 基本数据类型。(Number、Boolean、或 String。)如果 value 为一个对象,返回不作改动的该对象。如果value 为 null、undefined,或者没有给出,则产生没有内容的对象。 说明Object 对象被包含在所有其它 JScript 对象中;在所有其它对象中它的方法和属性都是可用的。在用户定义的对象中可以重定义这些方法,并在适当的时候通过 JScript 调用。toString 方法是经常被重定义的Object 方法的例子。 |
2、通过使用数组的方式获取对象实例的数据,如下:
var school = new Object(); // 使用Object创建一个空对象 school.name = "Changchun University of Science and Technology"; // 添加属性 school.createDate = new Date(1958,8,12); school.deptCnt = "33"; school.majorCnt = 102; school.studentCnt = 35686; school.teacherCnt = 1505; // 使用数组的方式访问对象实例的属性值 |
3、为新创建的对象实例动态添加成员方法,有两种方式:
第一种:
var school = new Object(); school.getSchoolInfomation = function(){// 动态添加成员方法getSchoolInfomation var infos = "学校名称 : " + school.name + "<BR>"; infos += "建校时间 : " + school.createDate.getYear() + "年" + school.createDate.getMonth() + "月" + school.createDate.getDate() + "日" + "<BR>"; infos += "学院个数 : " + school.deptCnt + "<BR>"; infos += "专业个数 : " + school.majorCnt + "<BR>"; infos += "学生人数 : " + school.studentCnt + "<BR>"; infos += "教师人数 : " + school.teacherCnt + "<BR>"; infos += "学生分别 : "; for(istu in school.students){ infos += school.students[istu] + "|"; } infos += "<BR>"; infos += "教师分别 : "; for(iteacher in school.teachers){ infos += school.teachers[iteacher] + "|"; } infos += "<BR>"; return infos; } document.write(school.getSchoolInfomation());// 调用成员方法 |
第二种:
var school = new Object(); |
另外,Object对象本身具有两个属性和三个方法:
属性 方法 |