1.call()
第一个参数:this指向
如果要传参,后面依次是参数,例:
function fn(x,y){ console.log(this); } var obj = { name:"zs" } fn(1,2); fn.call(obj,1,2);
2.apply()
与第一种方法不同的是,用数组的形式表示参数
function fn(x,y){ console.log(this); } var obj = { name:"zs" } fn(1,2); fn.apply(obj,[1,2]);
3.bind()
bind 只改变this指向,不会调用函数
function fn(x,y){ console.log(this); } var obj = { name:"zs" } fn(1,2); fn.bind(obj,1,2)();