频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

16.3.4 对象的构造函数和方法

作者: 叶青编著 出处:电子工业出版社  2008-06-11 10:00    砖    好    评论   进入论坛
阅读提示:《HTML+CSS+JavaScript实用详解》第16章主要讲述的是JavaScript程序核心语法, 本章将学习JavaScript程序编写的核心部分,条件分支语句和循环语句、函数以及面向对象的概念。对于初学的读者,这是一个未知的学习世界,但也是知识提升最快的章节,本节主要讲对象的构造函数和方法。

16.3.4  对象的构造函数和方法

创建对象所用的构造函数是预定义的,如Object()可以用于创建一个空对象,而创建数组对象可以使用Array()构造函数。这些构造函数都是JavaScript内置的,配合new运算符以创建并初始化各种不同的内置对象。在实际程序设计中,也需要自定义对象,即自定义构造函数。如创建一个小狗的对象,即自定义一个构造函数为Dog()的对象类,通过向这个构造函数传递参数以初始化对象实例。不过构造函数只能初始化对象实例,而不返回对象实例,需要使用new运算符才能创建小狗的对象实例。

说明:在C#、C++和Java等面向对象程序设计中,使用类结构来定义对象的模板,而JavaScript比较简单,只需声明构造函数即可定义对象类。类是用于创建对象实例的一个模板,对象实例通过构造函数初始化,并继承一定的属性和方法。

在D:\web\目录下创建网页文件(XHTML1.0),命名为newfun.htm,编写newfun.htm文件代码如代码16.18所示。

代码16.18  构造函数:newfun.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Transitional//EN" "http://www.w3.
org/TR/xhtml1/DTD/ xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="
text/html; charset=gb2312" />
<title>自定义对象</title>
<script type="text/javascript">
function Dog(x,y,z){
this.name=x;
this.color=y;
this.weight=z;
}
var dogA = new Dog("花花","黑色",50);  
var dogB = new Dog();
dogB.name="多多";
dogB.color="黄色"; 
</script>
</head>
<body>
<div id="main">
<script type="text/javascript">
document.write("dogA对象实例为:"+dogA);
document.write("<hr />dogA对象实例的name属性为:"+dogA.name);
document.write("<hr />dogA对象实例的color属性为:"+dogA.color);
document.write("<hr />dogA对象实例的weight属性为:"+dogA.weight);
document.write("<hr />dogB对象实例为:"+dogB;
document.write("<hr />dogB对象实例的name属性为:"+dogB.name);
document.write("<hr />dogB对象实例的color属性为:"+dogB.color);
document.write("<hr />dogB对象实例的weight属性为:"+dogB.weight);
</script>
</div>
</body>
</html>

在浏览器地址栏输入http://localhost/newfun.htm,浏览效果如图16.23所示。

本例创建了2个对象实例,创建dogA对象实例时,通过向Dog()构造函数传递3个参数,其3个属性被初始化,函数体内的this关键字引用对象本身。也可以先创建对象实例,然后设置相应属性,dogB实例,对象实例的属性没有传递相应的值,其属性值为undefined。对象内的一切组成要素称作对象内部的成员,如果一个成员是函数,则称这个函数为对象的方法。方法即为通过对象调用的函数,可以完成特定的功能,和构造函数一样,方法内部的this关键字用于引用对象本身。

自定义对象的方法比较简单,只需要将自定义的函数赋值给对象的方法名即可,代码编写在构造函数中,用this引用对象。在D:\web\目录下创建网页文件(XHTML1.0),命名为newfun2.htm,编写newfun2.htm文件代码如代码16.19所示。

 
图16.23  自定义对象

代码16.19  自定义对象方法newfun2.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 
1.0 Transitional//EN" "http://www.w3.
org/TR/xhtml1/DTD/ xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="
text/html; charset=gb2312" />
<title>自定义对象方法</title>
<script type="text/javascript">
function callName(){
alert("我的名字叫"+this.name);
return "本对象的方法已及执行完毕";

function Dog(x,y,z){
this.name=x;
this.color=y;
this.weight=z; 
this.call=callName; 
}

var dogA = new Dog("花花","黑色",50);
</script>
</head>
<body>
<div id="main">
<script type="text/javascript">  
document.write("dogA对象实例为:"+dogA);
document.write("<hr />dogA对象实例的name属性为:"+dogA.name);
document.write("<hr />dogA对象实例的color属性为:"+dogA.color);
document.write("<hr />dogA对象实例的weight属性为:"+dogA.weight);
document.write("<hr />dogA对象的call()方法执行情况:"+dogA.call());
</script>
</div>
</body>
</html>

将函数赋值给对象的方法名时,不需要(),否则赋值的内容是函数的返回值。在浏览器地址栏输入http://localhost/newfun2.htm,浏览效果如图16.24所示。

本例跳出的信息框是dogA对象调用了自定义的call()方法,该方法还使用了dogA对象的name属性。单击“确定”按钮后,浏览效果如图16.25所示。

 
图16.24  自定义对象方法
 
图16.25  方法执行完毕运行效果
虽然JavaScript支持对象数据类型,但是相对于C#、C++和Java等没有很正式的类的概念,所以JavaScript并不是以类为基础的面向对象的程序设计语言。
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
Flash CS3网站建设实例详解
中国互联网大会2008
Struts 2技术详解:基于WebWork核心的MVC开发与实践
SQL语言与数据库操作技术大全:基于SQL Server实现
构建高性能WebSphere企业级应用
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
微软出价446亿美元收购雅虎
微软出价446亿美元收购雅虎
中国互联网大会2008
中国互联网大会2008
技术人求职简历完备手册
技术人求职简历完备手册
· 技术人求职简历完备手册
· 访问控制列表(ACL)介绍
· 隐私保护技术探讨
· Windows Server 2008专..
· 华为员工自杀频频拷问..
· 勇闯IT培训黑色围城
· CISSP认证成长之路
· 解析35岁技术人的价值..
· 网络工程师职业规划与..
· LAMP技术精解
· AMD Phenom三核处理器..
· 充电计划之热门IT认证..
· 如何有效防御SQL注入攻..
· 2008年上半年全国软考..
· 选择适合自己的IT认证
· IPv6协议--拓展网络无..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· 了解统一威胁管理(UTM)..
· 专题:AIX操作系统管理..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用
· 访问控制列表(ACL)介绍
· PHP开发应用手册
· 专题:AIX操作系统管理..