【js-4】JavaScript中this的指向

分享人:黄麒二

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

在面向对象的语言中(例如Java,C#等),this含义是明确且具体的,即指向当前对象。一般在编译期绑定。而在javascript中, this是动态绑定的,它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式,并且在严格模式下也有不同, 这就导致了this具备了多重含义,可以使得javascript更灵活的使用。但是,带来了灵活性的同时也会给我们初学者带来不少困惑。 即使是细微的语法变化,都有可能意外改变this的值。

JavaScript 中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用。 下面我们将按照调用方式的不同,分别讨论 this 的含义

2.知识剖析

2.1 几种不同调用方法中this的指向

全局上下文

作为构造函数

作为对象的方法

定时器中的this

用call与apply的方式调用的函数

事件处理的时候

3.常见问题

JavaScript的设计缺陷

4.解决方案

5.编码实战

6.扩展思考

如何能加深记忆? (this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的。)

严格模式下的this

7.参考文献

参考一: JavaScript 参考文档

参考二: 深入浅出 JavaScript 中的this

8.更多讨论

感谢观看

马扬睿|黄麒二