第一种:call方式
let obj={
name:'小王',
age:18
}
function btn(x,y) {
console.log('call==='+this.name,this.age,x,y)
}
btn.call(obj,1,2)
第二种:apply方式
function btn2(x,y) {
console.log('apply==='+this.name,this.age,x,y)
}
btn2.apply(obj,[3,4])
第三种:bind方式
function btn3(x,y) {
console.log('bind==='+this.name,this.age,x,y)
}
let retobj=btn3.bind(obj,5,6)()
注意: call、apply与bind区别:前两个可以自动执行,bind不会自动执行,需要手动调用
call、bind与apply区别:前两个都有无数个参数,apply只有两个参数,而且第二个参数为数组