3种方式:call,apply,bind
一.call()
语法:函数名.call(调用者,参数1,参数2,……)
作用:当函数被调用时,会立即执行,函数中this会指向借用着
二.apply()
语法:函数名.apply(调用者,[参数1,参数2,……])
作用:当函数被调用时,会立即执行,函数中this会指向借用着
三.bind()
语法:函数名.bind(调用者,参数1,参数2,……)()
作用:当函数被调用时,会立即执行,函数中this会指向借用着
区别:
当call()apply()bind()里面不传值,null,undefined时,this指向window
相同点:
①三者都是用于改变this指向
②接受到的第一个参数都是this指向的对象
③都可以利用后续参数传参
不同点:
①call和apply传参相同多个参数依次传入
②apply只有2个参数,第二个参数为数组
③call和apply是直接进行调用,而bind方法不会直接调用,需要自调用()