在js中通过call或者apply实现继承

通过call或者apply可以实现函数里面this的改变,利用这一特点,可以实现继承

 

代码如下所示:

/*父类*/
function Parent(add,net,no,teacher) {
    this.add = add;
    this.net = net;
    this.no = no;
    this.teacher = teacher
}
/*子类*/
function Child(name,age,sex,id) {
    this.name = name;
    this.sex = sex;
    this.age = age;
    this.id = id;
    Parent.call(this,"山东","www.baidu.com","1608","ccy"); //这个时候的Parent中的this已经被Child所代替
}
var child = new Child("fangMing","18","男","10086");
console.log(child.add)

 




如果想用apply方法,可以将注释的一句改为Parent.apply(this,["山东","www.baidu.com","1608","ccy"]),两者的用法是一样的等效,唯一的区别就是
call后面跟的是有个一个一个单独的数据,而apply需要把数据放在数组里面
posted @ 2017-03-01 20:41  明明一颗大白菜  阅读(2519)  评论(0编辑  收藏  举报
<-- -->