当前位置: 首页 > Web前端 > JavaScript

call、apply、bind的作用和用法?

时间:2023-03-26 22:50:44 JavaScript

1、call和apply的作用是解决this的方向改变的问题。功能是一样的,只是传递参数的方式不同。除了第一个参数,call还可以接收一个参数列表,而apply只接受一个参数数组。bind和其他两个方法也可以改变this的点,但是这个方法会返回一个函数。我们可以通过bind2实现柯里化。用法示例conststeven={name:'steven',phoneBattery:70,chargeByCall:function(level1,level2){this.phoneBattery=level1+level2},chargeByApply:function(level1,level2){this.phoneBattery=level1+level2},chargeByBind:function(level1,level2){this.phoneBattery=level1+level2}}consttom={name:'tom',phoneBattery:5,}steven.chargeByApply。打电话(汤姆,90,2);//使用参数列表方法调用传递参数console.log(tom.phoneBattery);//92steven.chargeByApply.apply(tom,[20,50]);//应用传递参数使用参数数组方式console.log(tom.phoneBattery);//80consttomCharge=steven.chargeByBind.bind(tom);//bind返回一个函数,调用这个函数改变thistomCharge(70,6)的指向;console.log(tom.phoneBattery);//76