call、apply、bind的用法分别是什么?

call与apply

相同点:call和apply都是改变this指向的API

区别:call和apply的第二位参数的差别

let a=2
let b=3
function add(a,b){
  return a+b
}
console.log("call")
console.log(add.call(add,a,b))
console.log("apply")
console.log(add.apply(add,[a,b]))

由此可以看到call接受的是连续参数,apply接受的是数组参数

从运行效率上call比apply性能更佳,因为apply在最后执行的时候需要进行一次解构赋值。

bind

bind接受的参数和call一致,但是bind不会立即调用,他会生成一个新的函数,需要的时候再进行调用即可

function mul(a,b){
  return a*b
}
let x= mul.bind(add,2,3)
x()
前端

闭包详解

2021-2-8 20:19:02

前端

常见的HTTP代码及其含义

2021-3-1 14:12:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索