call apply bind 区别

1.call 和 apply

    其实call 和 apply 的功能是一样的,都是用来改变this的指向问题唯一的区别就是传参方式不一样

    apply(this, [num1, num2]);

    call(this, num1, num2);

call的参数是一个一个的传,而apply的参数是以数组的格式传进去

2.bind

   bind()是es5中的方法,他也是用来实现上下文绑定,看它的函数名就知道。bind()和call与apply不同。bind是新创建一个函数,然后把它的上下文绑定到bind()括号中的参数上,然后将它返回。

const obj = {}

function test(...args) {console.log(args)}

const newFn = test.bind(obj,'静态参数1','静态参数2')newFn('动态参数3','动态参数4')

你可能感兴趣的:(call apply bind 区别)