03.09 「前端架构师30天快速掌握js18」之this关键字知识点详解

此篇文章讲解目录:

  • 纯粹的函数调用

  • 作为对象方法的调用

  • 作为构造函数调用

  • apply调用

纯粹的函数调用

这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。

「前端架构师30天快速掌握js18」之this关键字知识点详解

为了证明,this代表的是全局对象,我们在这里对上述代码进行一下修改

「前端架构师30天快速掌握js18」之this关键字知识点详解

作为对象方法的调用

函数还可以作为某个对象的方法调用,这时this就指这个上级对象。

「前端架构师30天快速掌握js18」之this关键字知识点详解

此时的this指向的就是调用时的o对象

作为构造函数调用

所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。

「前端架构师30天快速掌握js18」之this关键字知识点详解

为了表明这时的this不是代表全局对象,和第一个this并不相同,我们对上面的代码在进行一下修改:

「前端架构师30天快速掌握js18」之this关键字知识点详解

apply调用

apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。

「前端架构师30天快速掌握js18」之this关键字知识点详解

apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。

所以第一个o.m.apply()的结果指向了全局对象,输出0

当改成o.m.apply(o)之后,this指向了o对象,所以结果为1

大家好接下来我们会邀请前端架构师以连载的方式,通过30天的实战系统讲解JavaScript的专业知识,欢迎大家关注头条号“互联网IT信息”。


分享到:


相關文章: