# 用途
一般用来指定this的环境
call(), apply() 立即执行,bind()要调用再执行
call(),apply(),bind()第一个参数后面参数的传递方式不一样了:
call(),bind()的第二个,第三个,第四个...参数,是用逗号隔开,传递的
apply() 需要把多个参数放在一个数组中,作为第二个参数传递
var a = {
user:"追梦子",
fn:function(){
console.log(this.user);
}
}
var b = a.fn;
b(); //undefined
我们是想打印对象a里面的user却打印出来undefined是怎么回事呢?如果我们直接执行a.fn()是可以的。
- call()
var a = {
user:"追梦子",
fn:function(){
console.log(this.user); //追梦子
}
}
var b = a.fn;
b.call(a);