call()、apply()、bind()的作用和区别

call()、apply()、bind()的作用和区别**

一、作用
改变函数的this指向

二、区别
区别在于参数传递和调用的方式存在不同
使用这三个方法时第一个参数都是指定this的指向,其余参数传递方法call和bind都是依次一个一个的传递,而apply是直接传递一个数组,将所有的参数都写在数组中。其次使用call和apply时是直接调用函数,而使用bind时是返回一个改变了this指向的新函数,还需要再单独调用。例如:
xxx.call(this,a,b,c)
xxx.apply(this.[a,b,c])
xxx.bind(this,a,b,c)()

此文章仅为个人学习笔记,如有不对之处,欢迎各位大佬指点~

猜你喜欢

转载自blog.csdn.net/zhengcaocao/article/details/112632573