javascript 的 apply实现继承

小生初学js,如果有什么错误的地方,还请大家见谅,还请大家指出.

apply()是Function()里的一个函数,主要功能我们下面再讲,我第一次用apply()的时候也是稀里糊涂的,后来我发现它其实和其他高级语言里的继承有很大的关系.


//定义一个函数Person
var Person = function(name,age){
    //这里的this指代的是Person的实例的对象
    this.name = name;
    this.age = age;
    //定义一个局部函数
    this.talk = function(){
        window.alert("talk");
    };
};

//下面定义一个函数Student,我们要做的就是让Student继承Person的属性和里面的局部函数,再给他增加一个属性身高
var Student = function(name,age,height){
    //用apply继承Person
    //arguments指代的是student的所有的形参
    Person.apply(this,arguments);
    //此时已经继承了Person的属性和方法了
    this.height = height;
};

//产生一个 student的实例
var XiaoMing = new Student("xiaoming",18,170);
//调用从Person继承过来的talk
XiaoMing.talk();//"talk"
//到这里差不多已经可以理解apply的继承了,其实我们并没有在student里定义 this.name = name; this.age = age; 而这两句则是从Person 那边继承过来的

但其实实际的js中,并没有继承这个概念,js只是基于对象的,而不是真正的面向对象的语言,我们这里讲解的apply也只是模拟,或者说类似于java或者其他高级语言里的继承

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值