call()、apply()、bind()方法的区别和相似点
一、切换函数执行的上下文环境(context),即 this 绑定的对象。
1.call() 方法是预定义的 JavaScript 方法。
2.apply() 方法接受数组形式的参数。编写用于不同对象的方法。
3.bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,
函数体内的this对象的值会被绑定到传入bind()中的第一个参数的值,
例如:f.bind(obj),实际上可以理解为obj.f(),这时f函数体内的this自然指向的是obj;
区别:
call、bind、apply 这三个函数的第一个参数都是 this 的指向对象,第二个参数差别就来了:
1.call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔,直接放到后面
2.apply 的所有参数都必须放在一个数组里面传进去
3.bind 返回是函数,没有立即执行(需要手动执行)并且可以将参数在执行的时候添加