JavaScript中Object对象的使用

来源:互联网 发布:徐宥箴与多益网络 编辑:程序博客网 时间:2024/05/21 06:23

在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">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
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;

// 使用数组的方式访问对象实例的属性值
document.write("使用数组的方式获取到对象的属性值,如下所示:<BR>");
var arrayStr = "学校名称 : " + school["name"] + "<BR>";
arrayStr += "建校时间 : " + school["createDate"].getYear() + "年" + school["createDate"].getMonth() + "月" + school["createDate"].getDate() + "日" + "<BR>";
arrayStr += "学院个数 : " + school["deptCnt"] + "<BR>";
arrayStr += "专业个数 : " + school["majorCnt"] + "<BR>";
arrayStr += "学生人数 : " + school["studentCnt"] + "<BR>";
arrayStr += "教师人数 : " + school["teacherCnt"] + "<BR>";
document.write(arrayStr + "<BR><BR><BR>");
school.students = ["Sa","Sb","Sc","Sd","Se","Sf","Sg","Sh","Si","Sj","Sk","Sl","Sm","Sn","So"];
school.teachers = ["Ta","Tb","Tc","Td","Te","Tf"];

// 为新建的对象实例添加成员方法
school.getSchoolInfomation = function(){
   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());

// 另一种为新建的对象实例添加方法的实现

// 首先,定义一个函数
function describe(privilege){
   if(privilege == 8){
    var info = "Changchun University of Science and Technology(CUST) is a university of science and technology founded by the Chinese Academy of Sciences in 1958. ";
    document.write("学校简介 : " + info);
   }
   else{
    document.write("你没有权限对学校进行描述,请联系管理员!");
   }
}

  // 然后,将新定义函数的返回值赋予新建对象实例的一个成员方法名
school.introduce = describe;
school.introduce(8); // 调用动态添加的成员方法
</script>
</HEAD>

<BODY>

</BODY>
</HTML>

运行结果如下:

使用数组的方式获取到对象的属性值,如下所示:
学校名称 : 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 为一个对象,返回不作改动的该对象。如果valuenullundefined,或者没有给出,则产生没有内容的对象。

说明

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;

// 使用数组的方式访问对象实例的属性值
document.write("使用数组的方式获取到对象的属性值,如下所示:<BR>");
var arrayStr = "学校名称 : " + school["name"] + "<BR>";
arrayStr += "建校时间 : " + school["createDate"].getYear() + "年" + school["createDate"].getMonth() + "月" + school["createDate"].getDate() + "日" + "<BR>";
arrayStr += "学院个数 : " + school["deptCnt"] + "<BR>";
arrayStr += "专业个数 : " + school["majorCnt"] + "<BR>";
arrayStr += "学生人数 : " + school["studentCnt"] + "<BR>";
arrayStr += "教师人数 : " + school["teacherCnt"] + "<BR>";
document.write(arrayStr + "<BR><BR><BR>");

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();
function describe(privilege){ //   首先定义一个函数
   if(privilege == 8){
    var info = "Changchun University of Science and Technology(CUST) is a university of science and technology founded by the Chinese Academy of Sciences in 1958. ";
    document.write("学校简介 : " + info);
   }
   else{
    document.write("你没有权限对学校进行描述,请联系管理员!");
   }
}
school.introduce = describe; // 将函数的返回值赋予定义的对象实例的成员方法名
school.introduce(8); // 然后再用对象实例去调用该动态添加的成员方法

另外,Object对象本身具有两个属性和三个方法:

属性

prototype 属性 |constructor 属性

方法

toLocaleString 方法 |toString 方法 |valueOf 方法

原创粉丝点击