镜涛的家 JT
A NEW LIFE WITH YOU !
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 35 文章- 1 评论- 463
JavaScript面向对象------继承
javascript面向对象继承的三种方法:
<
html xmlns
=
"
http://www.w3.org/1999/xhtml
"
>
<
head runat
=
"
server
"
>
<
title
>
Untitled Page
</
title
>
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
>
//
基类
function Person()
{
this
.Name
=
"
Person
"
;
this
.Sex
=
"
NONE
"
;
this
.Age
=
"
?
"
;
this
.SayName
=
function()
{alert(
this
.Name);}
;
this
.SaySex
=
function()
{alert(
this
.Sex);}
;
this
.SayAge
=
function()
{alert(
this
.Age);}
;
}
//
子类
function ManPerson()
{
this
.Name
=
"
ManPerson
"
;
this
.Sex
=
"
Man
"
;
this
.Age
=
"
20
"
Person.apply(
this
);
//
执行该语句时会调用Person中的构造器,先前赋值的ManPerson,Man,20就失去作用了,所以这句话
//
要放在this.Name="ManPerson";之前才能即继承Person的方法,又不会覆盖我们的赋值操作。
}
//
第一种方法
function first()
{
var p
=
new
Person();
alert(
"
Name:
"
+
p.Name
+
"
Sex:
"
+
p.Sex
+
"
Age:
"
+
p.Age);
//
执行结果为Name:Person Sex:NONE Age:?
p.SayName();
//
执行结果Person
var mp
=
new
ManPerson();
alert(
"
Name:
"
+
mp.Name
+
"
Sex:
"
+
mp.Sex
+
"
Age:
"
+
mp.Age);
//
apply在赋值后结果为:Name:Person Sex:NONE Age:?
//
在赋值前结果为:Name:ManPerson Sex:Man Age:20
mp.SaySex();
//
执行结果Man
//
可以看到ManPerson很好的继承了Person
}
//
第二种方法
function second()
{
for
(pro
in
Person)
{
ManPerson[pro]
=
Person[pro];
}
var p
=
new
Person();
alert(
"
Name:
"
+
p.Name
+
"
Sex:
"
+
p.Sex
+
"
Age:
"
+
p.Age);
//
执行结果为Name:Person Sex:NONE Age:?
p.SayName();
//
执行结果Person
var mp
=
new
ManPerson();
alert(
"
Name:
"
+
mp.Name
+
"
Sex:
"
+
mp.Sex
+
"
Age:
"
+
mp.Age);
//
执行结果为Name:Person Sex:NONE Age:?
mp.SaySex();
//
执行结果NONE
mp.Name
=
"
ManPerson
"
;
mp.SayName();
//
执行结果:ManPerson
//
可以看到ManPerson继承了Person的SayName
}
function third()
{
//
第三种方法
ManPerson.prototype
=
Person.prototype;
var mmp
=
new
ManPerson();
mmp.SayName();
//
执行结果:Person
mmp.Name
=
"
ManPerson
"
;
mmp.SayName();
//
执行结果:ManPerson
//
ManPerson继承了Person的方法
}
</
script
>
</
head
>
<
body
>
<
form id
=
"
form1
"
runat
=
"
server
"
>
<
div
>
<
button value
=
"
FirstMethod
"
onclick
=
"
first()
"
>
FirstMethod
</
button
><
br
/>
<
button validationgroup
=
"
SecondMethod
"
onclick
=
"
second()
"
>
SecondMethod
</
button
><
br
/>
<
button value
=
"
ThirdMethod
"
onclick
=
"
third()
"
>
ThirdMethod
</
button
>
</
div
>
</
form
>
</
body
>
</
html
>
Tag标签:
javascript
,
继承
posted @ 2008-04-29 09:48
镜涛
阅读(1702)
评论(16)
编辑
收藏
所属分类:
AJAX
发表评论
回复
引用
查看
#1楼
2008-04-29 10:11 |
李战
回复
引用
查看
#2楼
2008-04-29 10:28 |
EverGreen
不错
回复
引用
查看
#3楼
2008-04-29 11:56 |
AK47
http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif
回复
引用
查看
#4楼
2008-04-29 13:50 |
new 维生素C.net()
mp.SaySex();//执行结果Man
//可以看到ManPerson很好的继承了Person
怎么是Man呢? 应该是NONE
回复
引用
查看
#5楼
2008-04-29 14:41 |
mrfangzheng
JavaScript为什么不引入class关键字呢? 用个function来模拟多累啊
回复
引用
查看
#6楼
2008-04-29 17:56 |
charry
学习了
回复
引用
查看
#7楼
2008-04-29 18:26 |
留恋星空
看看
回复
引用
查看
#8楼
[
楼主
]2008-04-30 08:51 |
镜涛
@new 维生素C.net()
呵呵,打错了。不好意思!谢谢提醒
回复
引用
查看
#9楼
[
楼主
]2008-04-30 08:52 |
镜涛
@mrfangzheng
呵呵,没办法啊!
回复
引用
#10楼
2008-04-30 08:58 |
入江纱绫 [未注册用户]
--引用--------------------------------------------------
李战: <img src="
http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif"
alt="" /><img src="../../Emoticons/yoyocici/223852199.gif" alt="" />
回复
引用
查看
#11楼
2008-04-30 13:14 |
romce
学习了o(∩_∩)o...
回复
引用
查看
#12楼
2008-04-30 18:39 |
SPARON
还有一种更好的实现继承的方法,通过CALL来实现。
回复
引用
查看
#13楼
[
楼主
]2008-05-01 10:13 |
镜涛
@SPARON
恩,Call和Apply都可以实现继承。只不过参数不同而已。一个是要求array 一个是param 序列。呵呵
回复
引用
#14楼
2008-05-02 14:25 |
cxxx [未注册用户]
恩,不错
回复
引用
#15楼
2008-05-04 19:48 |
入江纱绫 [未注册用户]
mark!
回复
引用
查看
#16楼
2008-05-09 21:11 |
WGforward
学习中》。。。。
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
另存
打印
所属分类的其他文章:
·
javascript继承的原理
·
Ajax-Request
·
Html元素动态添加方法
·
Div+Css登陆窗体实现
·
JavaScript面向对象------继承
·
解决Ajax中文乱码问题
最新IT新闻:
·
Mozilla将于本周五发布Firefox 3.1第一个预览版
·
瑞星将向个人用户免费1年
·
中国互联网历史上最伟大的产品TOP10(二)
·
盖茨官方否认天价租楼看奥运 纯属地产商炒作
·
2008年7月24日IT博客精选
博客园新闻频道
博客园首页
社区
公告
QQ:307073463 Email:jingtaodeemail@qq.com MSN:sunjingtao@live.com
与我联系
发短消息
留言簿
给我留言
查看留言
我参加的小组
书籍推荐
求职招聘小组
设计模式
读书(Books)
web标准设计
WinForms
Visual Studio
.NET 3.x
框架设计
AJAX
我参与的团队
.NET 控件与组件开发(1/1338)
WCF技术研究团队(2/119)
asp.net开发团队(0/168)
框架设计团队(0/14)
随笔分类
(48)
.NET(12)
(rss)
AJAX(6)
(rss)
Game (1)
(rss)
Java(1)
(rss)
XML与XSLT(5)
(rss)
读书笔记(3)
(rss)
日常生活(9)
(rss)
数据结构与算法(1)
(rss)
项目开发(5)
(rss)
重构与模式(5)
(rss)
相册
ME
我的好友
冬冬
(rss)
IT的老大,我们的biang
小刚
(rss)
天天一起的哥们
最新随笔
1. 举国默哀三天
2. javascript继承的原理
3. Ajax-Request
4. “做”的“累”
5. Html元素动态添加方法
6. 书籍下载链接
7. 分享书籍之汗
8. Div+Css登陆窗体实现
9. 分享书籍
10. 利用XML配置实体列表
搜索
积分与排名
积分 - 69828
排名 - 546
最新评论
1. re: “做”的“累”
设计模式,先做好设计,挨着,一步步来,要不看看xp拥抱变化 也行,就是极限编程.....哈哈...放轻松点....慢慢体会乐趣.....
(林间曦阳)
2. re: “做”的“累”
设计模式,先做好设计,挨着,一步步来,要不看看xp拥抱变化 也行,就是极限编程.....哈哈...放轻松点....慢慢体会乐趣..... (林间曦阳)
3. re: 神界危机3.4通关方略
擦 真JB好过。。 打了5个小时还JB弄的满身是汗,, 够JB累的了。。 有那时间都能操次逼了。。 妈的 完人。。不学分身跟死亡之指根本过不去。。 要不得他吗的打上一天时间... (我中国人 找回公道)
4. re: 浅谈JSON和XML
第一个……悄悄的说不是json哦…… (棕熊)
阅读排行榜
1. 神界危机3.4通关方略(2715)
2. 分享书籍(2552)
3. 知识的殿堂??!(2511)
4. 分享,讨论Programming的习惯(2358)
5. 解决Ajax中文乱码问题(2301)
评论排行榜
1. 分享书籍(162)
2. 知识的殿堂??!(57)
3. 分享,讨论Programming的习惯(32)
4. 书籍下载链接(24)
5. 扯淡设计模式之单件模式(23)