很多初学者在看代码时,会看不懂this是干嘛的,有什么作用,为什么用this ?
针对上面的问题,做几个简单的分析回答。
首先,this 是JavaScript语言中的一个关键字,它代表函数运行时,自动生成的一个内部对象;
随着函数的适用场合的不同,this所代表的值也会发生不同的变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象;
使用this就是为了让代码更加有规则化,有条理,随着代码的增加,函数嵌套、各级调用等变得越来越复杂,传递一个对象的引用将变得越来越不明智,它会把你的代码弄得非常乱,甚至自己都无法理解清楚。而this机制提供了一个更加优雅而灵便的方案,传递一个隐式的对象引用让代码变得更加简洁和复用。
注:this跟函数在哪里定义没有任何关系,跟函数在哪里调用才决定this到底是引用的谁。
这里列举几个this使用的场合和方法:
- 在函数外部使用this
- 在函数内部调用this
- 用new关键字来调用this
- 作为对象的方法调用this
- 使用Apply,Call方法调用this
下章介绍