学习笔记 —— Javascript的类(2)

本文通过一个JavaScript实例演示了如何实现类的继承,特别是关注父类中包含引用类型成员时,子类与父类是否共享同一对象的问题。通过创建内部类及自定义方法,展示了继承过程中对象属性的行为。
None.gif//定义一个类
None.gif
function TestClass(name)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
//定义一个属性,并设置默认值
InBlock.gif
    this.Name = name || "jxh";
InBlock.gif
InBlock.gif    
//定义一个对象属性
InBlock.gif
    this.internalClass = new InternalClass(this.Name);
InBlock.gif
InBlock.gif    
//定义一个方法
InBlock.gif
    this.GetFormatName = function()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        var fname 
= this.internalClass.FormatName();
InBlock.gif        
return fname;
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif
None.gif
//内部类
None.gif
function InternalClass(name)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
this.InternalName = name;
ExpandedBlockEnd.gif}

None.gif
None.gif
//继承TestClass的子类
None.gif
function SubjectClass(name)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
this.base = TestClass;
InBlock.gif    
this.base(name);
ExpandedBlockEnd.gif}
继承的时候比较关心的问题就是当父类有引用对象时,父类和子类是不是在操作同一个对象
None.gif<script language = "javascript">
None.gif    function Click_Event()
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif{
InBlock.gif        var testClass 
= new TestClass(); //声明父类
InBlock.gif
        var subjectClass = new SubjectClass("jxhwei");//声明子类
InBlock.gif

InBlock.gif        var name 
= "父类:" + testClass.internalClass.InternalName; //调用父类的对象属性
InBlock.gif
        name += "\r\n子类:";
InBlock.gif        name 
+= subjectClass.internalClass.InternalName;//调用子类的对象属性
InBlock.gif

InBlock.gif        alert(name);
ExpandedBlockEnd.gif    }

None.gif
</script>
运行结果,OK

转载于:https://www.cnblogs.com/jxhwei/archive/2007/01/31/635448.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值