他们最重要的作用就是改变this指向,但是三个方法有相同之处也有不用之处,俺就来小小的总结下喽。
2.改变所调用函数中this指针的指向后,再次调用该函数,他的指向就又是window了,意思就是他们只能改变当前绑定的函数中的this 不是永久性的改变,再次调用原函数 ,this指向就恢复了。
function foo(){ this.nam } var obj ={ info:“tom”; } foo.call(obj);这个时候的this就是obj
3.借用别的对象的方法2.改变所调用函数中this指针的指向后,再次调用该函数,他的指向就又是window了,意思就是他们只能改变当前绑定的函数中的this 不是永久性的改变,再次调用原函数 ,this指向就恢复了。
function foo(){ this.nam } var obj ={ info:“tom”; } foo.apply(obj);这个时候的this就是obj
3.借用别的对象的方法 例如求数组中的最大值 var arr=[1,2,3,21,55,55]. var man=Math.max.apply(null,arr);数组中没有max这个方法,通过apply来借用下max方法给数组用。
他们的作用是完全相同的,唯一区别在于传递参数的时候。 call的参数是单个的 apply的参数是一个数组
setinterval调用的函数,不是bind调用的
为了检测以下你是不是真的认真思考我的每一句话,给您出个小题目,做做看吧。
function Foo(){ console.log(this.info) } Foo.bind({info:"holle"})(); Foo(); var fn= Foo.bind({info:"holle"}); fn();分别会输出什么?
holle undefined holle
做错的小朋友再仔细看看内容哦,大神就莫要见笑了。有错误的地方欢迎指出哦,俺需要你们。
