Javascript对象冒充

         继承是面向对象的重要特征之一。在万事万物皆对象的面向对象语言中 中子类继承并实现父类的一些属性和方法.,从而实现代码的复用,利于软件的开放性和扩充性,同时减少了一些不必要的类的出现。

       Javascript本身也是一种基于对象的语言,但是对继承提供的语法上的支持不完善,可以用对象冒充实现相关机制。

       对象冒充是指一个对象冒充另外一个对象来还行其他对象的方法,即一个对象将其他对象的方法当做是自身的方法来执行。JS中的call和apply两个方法可以实现这种机制,两者格式略有不同。

FunctionName.Call(object.,argument1,argument2,argument3…)
FunctionName.apply(object,[argument1,argument2,argument3…])

具体应用如下:

Function Student(studyNo)
{
  This. studyNo = studyNo;

}

People.prototype.getNO=function()
{
   Return this.studyNo;
}

Var studentA = new student(“studentA  001”)
Var studentB = new student(“studentB  002”)
alert(studentA. getNO);
alert(studentB. getNO.);
alert(studentA. getNO.call(studentB));
alert(studentA. getNO.apply(studentB,[]))

       getNO函数调用了call和apply方法,所以getNO函数被当做两个方法的第一个参数studentB所指定的对象的方法来执行。Call的实参以参数的形式出现,apply的形参被放入数组中。

具体实例:

 

function student(name)
{
  Var name =name;
  This.getName=function()
  {
    return name;

}
}

function studentA(name ,studyNo)
{
  Student.call(this,,”studentA”);
  this.name=name;
  this.studyNo=studyNo;
}

Var studentA =new StudentA(甲);
Var name=studentA.getName();
Alert(name);

       上述代码的关键在于Student.call(this,studentA);采用了对象冒充机制调用了父类的构造函数,是的子类studentA中也有了student类在其构造函数中所定义的内容,达到了继承的效果

     
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 41
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值