bind.apply和apply.bind是怎么一回事
程序员文章站
2022-07-14 12:20:21
...
在看书的过程中看到Function.apply.bind
有些不懂,不知道是怎么回事,平时用的时候都是单个用,没有合到一起过,寻找到原理之后在这里记录一下。
实际上Function.apply.bind
和Function.apply.bind
的原理都是一样的,
先将fn.bind
提出来,然后用apply
调用它,此时参数中的apply
是add
函数,arguments
是[add,1,2]
,apply
将bind
的this
绑定成fn
,并且传入参数,arguments
,此时的,arguments
是[add,1,2]
,然后便是调用bind
将fn
的this
改变并且传入参数
function add(x, y) {
console.log(x + y)
}
let cAdd = function (fn) {
return fn.bind.apply(fn, arguments)
//上边和下边是一样的
//let fnBind = fn.bind
//return fnBind .apply(fn, arguments)
}
let res = cAdd(add, 1, 2)
res()
上一篇: 使用 Docker 部署 Node 应用 - 镜像文件尺寸的优化
下一篇: Python的类简析