JavaScript之call、apply

在学习call和apply之前,我们先来简单的了解一下JavaScript中this指针:
*简单来说:如果不用new操作符而直接调用,那么构造函数的执行对象就 是window,即this指向了window。现在用new操作符后,this就指向了新生成的对象。

1、 call和apply都是改变this指向。
2、区别在于传参列表不同
call 需要把实参按照形参的个数传进去
apply需要传一个arguments
3、调用call和apply的作用就是:借用别人的函数实现自己的功能的封装

4、call的使用:

function Person(name,age,sex){
  this.name = name;
  this.age = age;
  this.sex = sex;
}
function Student(name,age,sex,tel,grade){
  // var this = {name:"",age:"",sex:""}
  Person.call(this,name,age,sex);  //通过call将Person中的传进来,想调用别人的函数就这样实现
  this.tel = tel;
  this.grade = grade;
}
var student = new Student("sunny",123,"male",139,2017);

在这里插入图片描述
5、apply的使用:

function Wheel(whellSize,style){
  this.style = style;
  this.whellSize = whellSize;
}

function Sit(c,sitColor){
  this.c = c;
  this.sitColor = sitColor;
}

function Model(height,width,len){
  this.height = height;
  this.width = width;
  this.len = len;
}

function Car(whellSize,style,c,sitColor,height,width,len){
  Wheel.apply(this,[whellSize,style]);
  Sit.apply(this,[c,sitColor]);
  Model.apply(this,[height,width,len]);
}
var car = new Car(100,"花里胡哨","真皮","red",1800,1900,4900);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值