每天分享一个小知识
bind,call,apply的区别
- call 和 apply 都是为了改变this的指向。作用是相同的,只是传参的方式不同。
- 除了第一个参数外,call 可以接受一个参数列表,apply 只接收一个参数数组。
- bind 和其他两个方法作用也是一致的,只是该方法会返回一个函数,并且我们可以通过bind实现柯里化。**
示例代码如下:
let a={
value:1
}
function getValue(name,age){
console.log(name);
console.log(age);
console.log(this.value);
}
getValue.call(a,'张三',24); //张三,24, 1
getValue.apply(a,['张三',24]); //张三,24, 1
let getValueBind=getValue.bind(a,'张三',24);
getValueBind(); //张三,24, 1