JS中的call、apply、 bind

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38102188/article/details/81627274

首先这三个函数的目的都是实现函数调用
1、call

function foo(a,b) {
    console.log(this)
    console.log(a)
    console.log(b)
}
foo.call(this,1,2) //用call调用函数foo

返回的结果是:
这里写图片描述
也就是说call函数的第一个参数是内部this的指向,后面的参数才是函数真正的参数

2、apply
foo.apply(foo,[2,3]) //用apply调用foo
返回的结果是:
这里写图片描述
也就是说apply函数的第一个参数也是内部this的指向,后面的数组会解构成函数真正的参数

3、bind
foo.bind(foo,3,4).call() // 用bind调用foo
返回的结果是:
这里写图片描述
也就是说bind函数的作用是将参数传递给原函数的拷贝,然后执行call就可以调用这个拷贝函数了

猜你喜欢

转载自blog.csdn.net/m0_38102188/article/details/81627274