JavaScript继承

继承

1.call

call()可以调用函数

call()可以修改this的指向,使用call()的时候 参数一是修改后的this指向,参数2,参数3..使用逗号隔开连接

function fn(x, y) {

console.log(this);

console.log(x + y);

}

var o = {

name: 'andy'

};

fn.call(o, 1, 2);//调用了函数此时的this指向了对象o,

2.子构造函数继承父构造函数中的属性

1.先定义一个父构造函数

2.再定义一个子构造函数

3.子构造函数继承父构造函数的属性(使用call方法)

// 1. 父构造函数

function Father(uname, age) {

// this 指向父构造函数的对象实例

this.uname = uname;

this.age = age;

}

// 2 .子构造函数

function Son(uname, age, score) {

// this 指向子构造函数的对象实例

3.使用call方式实现子继承父的属性

Father.call(this, uname, age);

this.score = score;

}

var son = new Son('刘德华', 18, 100);

console.log(son);

3.借用原型对象继承方法

1.先定义一个父构造函数

2.再定义一个子构造函数

3.子构造函数继承父构造函数的属性(使用call方法)

// 1. 父构造函数

function Father(uname, age) {

// this 指向父构造函数的对象实例

this.uname = uname;

this.age = age;

}

Father.prototype.money = function() {

console.log(100000);

};

// 2 .子构造函数

function Son(uname, age, score) {

// this 指向子构造函数的对象实例

Father.call(this, uname, age);

this.score = score;

}

// Son.prototype = Father.prototype; 这样直接赋值会有问题,如果修改了子原型对象,父原型对象也会跟着一起变化

Son.prototype = new Father();

// 如果利用对象的形式修改了原型对象,别忘了利用constructor 指回原来的构造函数

Son.prototype.constructor = Son;

// 这个是子构造函数专门的方法

Son.prototype.exam = function() {

console.log('孩子要考试');

}

var son = new Son('刘德华', 18, 100);

console.log(son);

朱晓帆:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值