记录一个错了N遍的知识点
var a = {
user:"lxc",
fn:function(){
console.log(this.user);
}
}
var b = a.fn; //赋值以后this改变,因为b是全局变量
a.fn() ; //lxc this指向a
b(); //undefined this指向window;
b.call(this); //全局undefined
b.call(a); //lxc
var c=b.bind(a); //bind返回一个函数不能直接执行,需要调用才能执行
c(); //lxc
注:call和apply区别只是传参方式不同,call一个个传,apply传数组,bind传参方式和call一样
网友评论