千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

一.this关键字的解读
1.每一个函数内部都有一个关键字是this ,可以让我们直接使用的
2.函数内部的 this 只和函数的调用方式有关系,和函数的定义方式没有关系
3.函数内部的 this 指向谁,取决于函数的调用方式
一.call,apply,bind的区别
它们的作用是相同的,都是动态的修改当前函数内部的this的指向。
1.执行方式不同:
call和apply是改变后就立即执行函数,bind改变后不会立即执行;而是返回一个新的函数,需要再次调用。
2.传参方式不同:
call 第一个参数this指向,从第二个参数开始就是函数的参数。
bind 第一个参数this指向,从第二个参数开始就是函数的参数,返回的是函数体,继续通过调用可再次传入参数。 apply第一个参数this指向,第二个参数是数组,函数自身的参数放到数组里面。
3.修改this的性质不同
call、apply只是临时的修改一次,修改就是call和apply方法使用的那一次;当再次调用原函数的时候,它的指向还是原来的指向。
bind是永久修改函数this指向,但是它修改的不是原来的函数;而是返回一个修改过后新的函数,此函数的this永远被改变了,绑定了就修改不了。