this就是表示这个函数的对象,换言之谁调用它,谁就是this。
看下面的一段代码
很显然通过this可以找到name2里面的name,如果不使用this的话就需要一个执行上下文
可以感觉麻烦了一点。
虽然现在对我们的感觉并不是那么明显,那么随着深入对象和原型,你就会知道this有多么的重要。
this的指向:
直接调用时this 指向window,
以对象的形式调用this指向这个对象
以构造函数的形式调用this指向这个构造函数的实例对象。
所以我们必须要有一个准确的认识,this 不是固定的。
由上文,我们可以发现在代码中使用了call 那么这个就是用来改变this的指向。
例如:
一种有3种call、apply、bind.
相同:第一个参数都为改变this的指针。若第一参数为null/undefined,this默认指向window
区别
call(无数个参数)
第一个参数:改变this指向
第二个参数:实参
使用之后会自动执行该函数
apply(两个参数)
第一个参数:改变this指向
第二个参数:数组(里面为实参)
使用时候会自动执行函数
bind(无数个参数)
第一个参数:改变this指向
第二个参数之后:实参
返回值为一个新的函数
使用的时候需要手动调用下返回 的新函数(不会自动执行)