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')
网友评论