call apply bind的作用和区别

call、apply和bind都是JavaScript中改变函数内部this指向的方法。call和apply会立即调用函数,而bind则返回一个新的函数。call接受参数按位置传递,apply参数需以数组形式传递。bind常用于延迟执行并改变this,如在定时器场景中。apply常用于处理数组,如获取数组最大值。call则常用于实现继承。
摘要由CSDN通过智能技术生成

1.call apply bind 的作用和区别

作用:

都可以改变函数内部的this指向。

区别点:

1.call和apply会调用函数,并且改变函数内部this指向。

2.call和apply传递的参数不一样,call传递参数arg1,arg2..形式apply必须数组形式[arg]

3.bind不回调用函数,可以改变函数内部this指向。

解析:

call方法

改变函数内部this指向

call()方法调用一个对象。简单理解为调用函数的方式,但是它可以改变函数的this指向。

写法:fun.call(thisArg,arg1,arg3,...)//thisArg为想要指向的对象,arg1,arg3为参数

call的主要作用页可以实现继承

function Person(uname,age){
    this.uname = uname
    this.age = age
}
function Son(uname,age){
    Person.call(this,uname,age)
}
var son = new Son("zhang",12)
console.log(son)

apply()方法

apply()方法调用一个函数。简单理解为调用函数的方法,但是它可以改变函数的this指向

写法:fun.apply(thisArg,[argsArray])

  • thisArg:在fun函数允许时指定的this值
  • argsArray:传递的值,必须包含数组里面
  • 返回值就说函数的返回值,因为他就说调用函数

appl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值