三个都可以用来改变this的指向,区别就是用法不同,具体使用方法
1:都可以用来绑定对象
apply
const a = {b: 11}
const fn = function (c) {console.log(this.b)}
fn.apply(a);
fn.call(a);
fn.bind(a)();
2:具体区别:
apply:第二个参数是一个数组
call:如果有多个参数,依次传入进去
bind:第一个参数是绑定的对象,返回一个函数,需要重新调用才会执行
看例子:
const a = {b: 11}
const fn = function (c, d) {console.log(this.b); console.log(c, d)}
fn.apply(a, [1, 2]);
fn.call(a, 1, 2);
fn.bind(a)(1, 2);
网友评论