分享人:马扬睿
目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
在面向对象的语言中(例如Java,C#等),this含义是明确且具体的,即指向当前对象。一般在编译期绑定。而在javascript中, this是动态绑定的,它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式,并且在严格模式下也有不同, 这就导致了this具备了多重含义,可以使得javascript更灵活的使用。但是,带来了灵活性的同时也会给我们初学者带来不少困惑。 即使是细微的语法变化,都有可能意外改变this的值。
JavaScript 中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用。 下面我们将按照调用方式的不同,分别讨论 this 的含义
语法:this
全局上下文
bind()方法
作为对象的方法
原型链中的this
getter与setter 中的this
作为函数调用
作为构造函数
事件处理的时候
作为一个内联事件处理函数
参考一: JavaScript 参考文档
马扬睿