爪哇之家
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
35 随笔 :: 29 文章 :: 8 评论 :: 0 Trackbacks
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
php(7)
(rss)
windows(7)
(rss)
随笔档案
2008年12月 (1)
2008年5月 (1)
2008年3月 (1)
2007年12月 (1)
2007年11月 (3)
2007年10月 (1)
2007年9月 (1)
2007年5月 (1)
2007年2月 (1)
2007年1月 (1)
2006年11月 (2)
2006年10月 (4)
2006年9月 (1)
2006年6月 (2)
2006年5月 (2)
2006年4月 (3)
2006年3月 (3)
2005年12月 (3)
2005年11月 (2)
文章分类
java(5)
(rss)
javascript(11)
(rss)
linux(12)
(rss)
文章档案
2006年11月 (1)
2006年10月 (2)
2006年9月 (8)
2006年8月 (5)
2006年7月 (9)
2006年6月 (3)
2005年11月 (1)
网站收藏
http://sheneyan.com/
(rss)
http://www.java2s.com
http://www.w3cn.org
http://www.xfocus.net
搜索
最新评论
1. re: iis6的问题:Timer_MinBytesPerSecond,Timer_ConnectionIdle
还是不能解决问题,原因应该不是这个
--乾龙
2. re: 简单的JAVA防火墙
加点中文说明就好了!
--heyang
3. re: moodle安装笔记
不能登陆,说是cookie没有开启,可以说的具体点吗?我是个新手,拜托啊!
--李然
4. 文件不能下载
评论内容较长,点击标题查看
--dreamour
5. re: moodle安装笔记
我在同一台服务器上开设两个moodle站点,本地登陆都没有问题,但挂上网后其中一个登陆就老说ccookie问题,不能登陆。请问这种问题怎么解决?谢谢!
--hh
阅读排行榜
1. delphi用ADO控件读EXCEL或DBF文件(6404)
2. iis6的问题:Timer_MinBytesPerSecond,Timer_ConnectionIdle(3195)
3. 网页视频代码(1616)
4. moodle安装笔记(1361)
5. 18位公民身份证号码的编排规则(665)
评论排行榜
1. moodle安装笔记(3)
2. Aspirin - 简单实现邮件发送功能,不需要SMTP服务器(1)
3. 网页视频代码(1)
4. iis6的问题:Timer_MinBytesPerSecond,Timer_ConnectionIdle(1)
5. 使用模板模式简化DAO操作Hibernate(1)
JavaScript中的继承(下)
Prototype
在《
JavaScript中的对象(下)
》一文中,我们了解到任何prototype的属性和方法都会被传递到该类的所有实例中,利用这一特性,使用prototype也能实现继承。
function
ClassA()
{
}
ClassA.prototype.id
=
1998
;
ClassA.prototype.sayId
=
function
()
{
alert(
this
.id);
}
;
function
ClassB()
{
}
ClassB.prototype
=
new
ClassA();
ClassB.prototype.name
=
""
;
ClassB.prototype.sayName
=
function
()
{
alert(
this
.name);
}
需要注意的是,这种实现继承的方法不能将参数传入到ClassA的构造器中,是一个缺陷。ClassB的所有属性和方法必需在将ClassB的 prototype对象指向ClassA的实例之后进行附值。这样做是因为,prototype指向一个新的对象,在此之前prototype的属性和方 法都被覆盖销毁。
对代码进行测试:
var
obj1
=
new
ClassA();
var
obj2
=
new
ClassB();
obj1.id
=
1998
;
obj2.id
=
2000
;
obj2.name
=
"
悉尼奥运会
"
;
obj1.sayId();
//
输出"1998"
obj2.sayId();
//
输出"1998"
obj2.sayName();
//
输出"悉尼奥运会"
alert(obj2
instanceof
ClassA);
//
输出"true"
alert(obj2
instanceof
ClassB);
//
输出"true"
在上述代码中可以看出,使用prototype实现继承,instanceof操作符出现了另外的用途,在用构造起定义类实现继承时,instanceof不会出现这种效果。但是使用prototype不能支持多重继承。
在《
JavaScript中的对象(下)
》和上文的论述中可以了解到,使用构造器定义类实现继承和使用prototype实现继承均存在各自的缺陷,要避免出现这些情况,只有将两者混合使用。
混合方法
《
JavaScript中的对象(下)
》一文中曾经论述,创建一个类的最佳方法,是使用构造器的方法去定义属性,使用prototype定义方法。在继承中同样如此。
function
ClassA(id)
{
this
.id
=
id;
}
ClassA.prototype.sayId
=
function
()
{
alert(
this
.id);
}
;
function
ClassB(id, name)
{
ClassA.call(
this
, id)
;
this
.name
=
name;
}
ClassB.prototype
=
new
ClassA()
;
ClassB.prototype.sayName
=
function
()
{
alert(
this
.name);
}
posted on 2006-07-16 13:30
爪哇之家
阅读(159)
评论(0)
编辑
收藏
所属分类:
javascript
Powered by:
BlogJava
Copyright © 爪哇之家