网络编程
位置:首页>> 网络编程>> JavaScript>> javascript面向对象编程(四)

javascript面向对象编程(四)

作者:canque 来源:CanQue@RSSIDEA 发布时间:2008-03-07 14:20:00 

标签:面向对象,继承,编程,oop,javascript

阅读上一篇:javascript面向对象编程(三)

继承是面向对象语言中的一个重要概念,现在我们来探讨一下继承。在网上搜一下javascript继承,可以得到无数关于javascript继承的文章。这些文章可能使用了很多让人眼花缭乱的技巧。但是,大多数情况下,其核心思想只有两种:利用prototype来实现继承(prototype继承)和利用复制对象方法来实现继承(class继承?听过的说法,不知是否准确)。先了解下这两种继承是如何实现的,以及它们的区别。

[prototype继承]


 

对prototype基本原理还不清楚的人可以看看这篇文章,虽然是说actionscript,但原理都是一样的。

[复制对象继承]


通过复制temp(对象,newClass的实例)到newClass(新建立的类)上来实现继承。

[prototype继承和复制对象继承区别]
从上面的例子可以看出,这两种方法都实现了继承。但是,它们究竟有什么区别呢?

prototype继承方式:
newClass.prototype->base.prototype->Object.prototype

复制对象继承方式:
base.prototype->Object.prototype
|
| [对象复制]
|
V
newClass.prototype->Object.prototype

下面的代码是prototype继承方式,我们尝试对基类进行修改:

由上面的代码可以看出,由于prototype继承是通过prototype链的指向来完成的,所以改变prototype链上级将实时影响到prototype链的下级。而如果是复制对象的继承方式,由于是将基类复制到新类,所以再改变基类对新类不会有影响。看下面的代码:



关于prototype这个东西,到现在我还没见过有谁敢拍胸脯说自己完全掌握的。本文也没有涉及到prototype比较深刻的地方。借此文抛砖引玉,希望更多的朋友能参与交流,不吝赐教。

0
投稿

猜你喜欢

  • Ewebeditor及fckeditork,90%的网站都是采用这两种编辑器作为产品或者内容的说明部分的编辑窗口,近日,一客户的外贸站点基本
  • 1.11 – 添加缎带修饰网页局部模块中右上角的蓝色缎带修饰是这个网站界面设计中的一个亮点,只要合理的运用CSS、PNG透明图片和绝对定位属
  • 通常我们在制作上图的时候,会分别给四个div加上不同的css属性,来实现中间间隔。但我们更希望的是不需要对html标签做标识,直接能通过cs
  • 你是怎么把密码储存到数据库里?是以纯文字的方式?你可知道这对安全的危险性?当攻击你网站的人能开启数据库浏览,以纯文字方式存在数据库里的密码一
  • 主键表的主键(primary key,主关键字)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。一个表不能有多个主关键字,并且
  • 在许多网页中,当鼠标移到一张图片上时,又弹出另一张图片,做这种广告条,要用到Macromedia DreamWeaver中的Lay
  • 阅读上一篇:微软建议的ASP性能优化28条守则(4)技巧 13:避免重新确定数组的维数 应尽量避免 Redim 数组。就性能而言,如果计算机
  • 1:在终端下:mysql -V。 以下是代码片段:[shengting@login ~]$ mysql -Vmysql Ver 14.7 D
  • 将图片读入到Dom中,并将其存为xml文件1、需要命名空间using System.Text;using System.IO;using S
  • 在填写表单的时候为了让用户有更好的体验,有时需要根据用户的输入出现提示共用户选择,我这个就是根据输入的内容,从数据库取出相关内容以供选择,这
  • 这问题在网络相信已经有不少人问到,最近再次被牵起讨论,籍此记录一下个人的理解,border:none;与border:0;的区别体现有两点:
  • Chrome的CSS支持程度 :Green / √ means current support.Orange / Δ means that
  • 今天要做个搜索,用到了时间比较函数!以前多是直接比较时间,查询语句有长效率又不高~~~后来用了DateDiff函数,在调试的时候发现了一些问
  • 介绍 IIRF是一款开源的重写URL过滤器,类似于Apache的URL重写,基于VC8.0(可以用Visual Studio200
  • 著名的老掉牙的IE6.0在我这里已经有六年工龄了,前几天朋友拿到个IE8.0新的Beta版本,我的Sever2003装不上,大为扫兴。Chr
  • 正则表达式(Regular Expression)为字符串模式匹配提供了一种高效、方便的方法。几乎所有高级语言都提供了对正则表达式的支持,或
  • YSlow是yahoo美国开发的一个页面评分插件,非常的棒,从中我们可以看出我们页面上的很多不足,并且可以知道我们改怎么却改进和优化。仔细研
  • 平时每逢alexa排名更新时,我都需要将所有相关的同类网站的排名整理一下,看一下这些对手网站的排名更新情况。做的多了,也就烦了,虽然也才30
  • 由于现在在公司负责制作标准的静态页面,为了增强客户体验,所以经常要做些AJAX效果,也学你也和我一样在,学习AJAX。而设计AJAX时使用的
  • 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式。掌握 Ajax 的这一期讨论另一种有用的数据格式 JavaScr
手机版 网络编程 asp之家 www.aspxhome.com