bind,call,apply的区别

191 阅读1分钟

这三个大佬是干什么用的

很多时候面试会问这些,就写写吧,很基础的一些东西。就是改变函数内的this的指向,再带些参数进入到函数中,随便你怎么耍了~~

call

function A(a,b,c){
    console.log(a,b,c)
}
var av={}


A.call(av,1,2,3);   //1,2,3

apply

function A(a,b,c){
    console.log(a,b,c)
}
var av={}

A.apply(av,[1,2,3])

bind

function A(a,b,c){
    console.log(a,b,c)
}
var av={}
var c=A.bind(av);
c(1,2);

区别

apply和call的区别就是传参数的方法不同,bind和其他2个的区别就是bind不是立刻调用的, 需要自己去调用。